问题解决了.....非常感谢
我想打破循环并从循环停止的点继续循环。例如,如果我有这样的数组:
$arr = array('1', '2', '3', '4', '5');
我想停止循环播放号码' 3'并采取行动,继续从' 4开始。我试过这段代码:
$x = 0;
foreach($arr as $key){
if($x == 3) break; // here I stop loop in number 3
echo $key;
$x++;
// I want to continue loop from 4
}
答案 0 :(得分:1)
为什么要停止?
使用
$x = 0;
foreach($arr as $key){
if($x == 3)
doSomething();
else
echo $key;
$x++;
}
在"做某事"之后,它将继续迭代4。 (正确说出:它将从1迭代到n,只在$x==3
执行操作,其他方式打印密钥。)
如果你只想避免关键" 3"打印时,您可以使用continue
声明:
$x = 0;
foreach($arr as $key){
if($x++ == 3)
continue; //proceed with next iteration
echo $key;
}
但是你需要在你的比较中使用$x++
,否则它会卡在$x==3
,因为总是会跳过增量。
Sidenode:如果您需要$x
成为正确的行号,请使用for()
代替foreach()
- 使用foreach()
,如果您不关心实际行number,但需要处理数组中的所有条目。
Sidenode 2:foreach($arr as $key)
错误。此表达式将为每个数组条目提供值,而不是键。使用foreach($arr as $key=>$value)
或foreach($arr as $value)
在变量上使用正确的名称。