我觉得这对我来说是一个愚蠢/愚蠢的错误,但我需要一套新的眼睛......我正在尝试使用substr循环一个字符串但是没有得到预期的结果。< / p>
例如,echo substr("950122", 2, 2);
向屏幕输出01而不是5.并且使用索引3给出122而不是0。
如何正确循环字符串?
http://ideone.com/YKz7g3
<?php
$str = "950122";
for( $i = 1; $i <= strlen( $str ); $i++ ) {
echo substr( $str, $i, $i ) . "\n";
}
?>
答案 0 :(得分:6)
起始位置从0
而非1
开始。为了获得5
,您使用1,1
并使0
使用2,1
。
0,1
会为您提供第一个字符9
。
此外,substr()
的第三个参数是长度,因此如果您使用1
,则会从start
或2
获得1个字符启动。
0,6
会950122
。
答案 1 :(得分:4)
1)i
应为0
2)它应该是substr( $str, $i, 1 )
而不是substr( $str, $i, $i )
答案 2 :(得分:1)
<?php
$str = "970122";
for( $i = 0; $i <= strlen( $str ); $i++ ) {
echo substr( $str, $i, 1 ) . "\n";
}
?>