【发布时间】:2015-06-19 01:07:51
【问题描述】:
给定以下代码
<?php
$a = array(1,2,3,4,5,6);
$c=0;
foreach($a as $v){
if($v==5&&$c==0){
$c=1;
reset($a);
}
var_dump($v);
}
如何重置指针,使其打印 1,2,3,4,5,1,2,3,4,5,6?
我知道在这种情况下我可以简单地
<?php
$a = array(1,2,3,4,5,6);
$c=0;
for($i=0;$i<count($a);++$i){
$v = $a[$i];
if($v==5&&$c==0){
$c=1;
$i=-1; //because of the loop ++$i
}
var_dump($v);
}
但是我有一段复杂得多的代码,解决方案并不像重写循环那么简单(不是数字键)。
有任何 PHP 大师可以在这里帮助我吗?
【问题讨论】:
-
您的第一个示例应该可以工作。
reset()(php.net/manual/en/function.reset.php) 是该案例的功能。 -
应该,但没有!!
-
仅供参考,“foreach”实际上如何“工作”很“有趣,也许:How 'foreach' actually works。我可以建议您不要在“foreach 循环”中调整“内部指针”吗?当“内部指针”被重置时,还有其他“循环”结构可以正常工作。
-
如果我可以让它在不重置的情况下工作,我会的。我去看看链接,谢谢