停止循环并从停止点继续

时间:2014-03-22 20:33:50

标签: php loops

问题解决了.....非常感谢

我想打破循环并从循环停止的点继续循环。例如,如果我有这样的数组:

$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
}

1 个答案:

答案 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)在变量上使用正确的名称。