有可能吗?或者我应该结束循环并开始另一个循环?
foreach($array as $i)
{
if (something)
// Go back
}
答案 0 :(得分:1)
创建一个函数并传递数组。如果循环中发生某些事情,请使用主数组再次调用该函数。试试这个 -
function check_loop($array) {
foreach($array as $val) {
if (something)
check_loop($array);
}
}
check_loop($array);
答案 1 :(得分:1)
不建议使用goto:
cIterator: {
foreach($array as $i)
{
if (something)
goto cIterator;
}
}
答案 2 :(得分:1)
你可以使用current(),next()和prev()循环遍历数组并来回移动内部数组指针:
$items = array("apple", "box", "cat");
while($item=current($items)) {
print_r($item);
if (needToGoBack($item))
// Go to previous array item
$item = reset($items);
} else {
// Continue to next
$item = next($items);
}
}
答案 3 :(得分:1)
是的。但不是与foreach&没有离开循环。 这是另一种选择,很好的衡量标准。
for ($i = 0; $i < count($array); $i++) {
if (condition) {
$i = 0;
}
do_stuff_with($array[$i]);
}
答案 4 :(得分:0)
使用继续
从PHP文档中: continue 用于循环结构中,以跳过当前循环的其余部分,并在条件评估和下一次迭代的开始处继续执行。