首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >奇怪的PHP substr()问题

问奇怪的PHP substr()问题
EN

Stack Overflow用户
提问于 2013-11-14 20:28:27
回答 3查看 329关注 0票数 0

我觉得这是个愚蠢的错误,但我需要一双新的眼睛.我试图使用substr循环字符串,但没有得到预期的结果。

例如,echo substr("950122", 2, 2);将01输出到屏幕,而不是5。使用3的索引使我得到122而不是0。

如何正确地遍历字符串?

http://ideone.com/YKz7g3

代码语言:javascript
复制
<?php
$str = "950122";
for( $i = 1; $i <= strlen( $str ); $i++ ) {
    echo substr( $str, $i, $i ) . "\n";
}
?>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 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。

票数 6
EN

Stack Overflow用户

发布于 2013-11-14 20:30:55

1) i应为0

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

票数 4
EN

Stack Overflow用户

发布于 2013-11-14 20:40:12

http://ideone.com/9qlwje

代码语言:javascript
复制
<?php
$str = "970122";
for( $i = 0; $i <= strlen( $str ); $i++ ) {
    echo substr( $str, $i, 1 ) . "\n";
}
?>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19987701

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档