我有这样的字符串:
$te = 'abcdefghijklmnopqrstuvwxyz1234567891011121314151617181920';
$text=strlen($te);
if($text<=10)
{
echo '2';
}
if($text>=11)
{
echo '4';
}
if($text>=19)
{
echo '6';
}
if($text>=29)
{
echo '8';
}
if($text>=39)
{
echo '10';
}
我可以通过一行代码执行此操作吗?而不是太多(IF)? 或者,当$ text的字符非常大,如字符数达到数百时,我将如何达到预期的输出
提前非常感谢
答案 0 :(得分:-1)
在我解释之前,我会等到听到我(现在的第四次尝试)是否正确......
代码:(Demo)
<xsl:if>
输出:
$strings=[9=>'123456789',10=>'1234567890',
11=>'12345678901',18=>'123456789012345678',
19=>'1234567890123456789',
28=>'1234567890123456789012345678',
38=>'12345678901234567890123456789012345678'];
foreach($strings as $k=>$str){
echo "$k => $str: ",($len=strlen($str))<11 ? 2 :2*(floor(($len+1)/10)+1),"\n";
}
//0 - 10 : 1 2
//11 - 18 : 2 4
//19 - 28 : 3 6
//29 - 38 : 4 8