0

我有一种感觉,这对我来说是一个愚蠢/愚蠢的错误,但我需要一双新的眼睛......我正在尝试使用 substr 遍历一个字符串,但没有得到预期的结果。

例如,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";
}
?>
4

3 回答 3

6

起始位置从0not开始1。所以让5你使用1,1并得到0使用2,1

0,1会给你第一个字符9

另外,第三个参数substr()是长度,所以如果你使用1,你会得到 1 个字符,start或者2从一开始就给你 2 个字符。

0,6会给950122

于 2013-11-14T20:29:47.847 回答
4

1)i应该是 0

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

于 2013-11-14T20:30:55.827 回答
1

http://ideone.com/9qlwje

<?php
$str = "970122";
for( $i = 0; $i <= strlen( $str ); $i++ ) {
    echo substr( $str, $i, 1 ) . "\n";
}
?>
于 2013-11-14T20:40:12.590 回答