回到PHP的foreach循环的开头

时间:2015-05-22 07:36:36

标签: php foreach

有可能吗?或者我应该结束循环并开始另一个循环?

foreach($array as $i)
{
    if (something)
        // Go back
}

5 个答案:

答案 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 用于循环结构中,以跳过当前循环的其余部分,并在条件评估和下一次迭代的开始处继续执行。

http://php.net/manual/en/control-structures.continue.php