我觉得这是个愚蠢的错误,但我需要一双新的眼睛.我试图使用substr循环字符串,但没有得到预期的结果。
例如,echo substr("950122", 2, 2);将01输出到屏幕,而不是5。使用3的索引使我得到122而不是0。
如何正确地遍历字符串?
<?php
$str = "950122";
for( $i = 1; $i <= strlen( $str ); $i++ ) {
echo substr( $str, $i, $i ) . "\n";
}
?>发布于 2013-11-14 20:29:47
起始位置从0而不是1开始。因此,要获得5,您需要使用1,1,而要获得0,则需要使用2,1。
0,1会给你第一个角色9。
而且,substr()的第三个参数是长度,所以如果使用1,则从start或2中获得1个字符,从一开始就给出2个字符。
0,6会给950122。
发布于 2013-11-14 20:30:55
1) i应为0
2)应该是substr( $str, $i, 1 )而不是substr( $str, $i, $i )
发布于 2013-11-14 20:40:12
<?php
$str = "970122";
for( $i = 0; $i <= strlen( $str ); $i++ ) {
echo substr( $str, $i, 1 ) . "\n";
}
?>https://stackoverflow.com/questions/19987701
复制相似问题