奇怪的PHP substr()问题

时间:2013-11-14 20:28:28

标签: php substr

我觉得这对我来说是一个愚蠢/愚蠢的错误,但我需要一套新的眼睛......我正在尝试使用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";
}
?>

3 个答案:

答案 0 :(得分:6)

起始位置从0而非1开始。为了获得5,您使用1,1并使0使用2,1

0,1会为您提供第一个字符9

此外,substr()的第三个参数是长度,因此如果您使用1,则会从start2获得1个字符启动。

0,6950122

答案 1 :(得分:4)

1)i应为0

2)它应该是substr( $str, $i, 1 )而不是substr( $str, $i, $i )

答案 2 :(得分:1)

http://ideone.com/9qlwje

<?php
$str = "970122";
for( $i = 0; $i <= strlen( $str ); $i++ ) {
    echo substr( $str, $i, 1 ) . "\n";
}
?>