在PHP中从循环中断并继续

在PHP中从循环中断并继续,php,Php,我试图创建一个简单的foreach循环。但是,在3刚刚完成之后,我只需要运行一个惟一语句,只运行一次。然后继续我刚才讲到的地方。这是我的循环: $foo = array(1,2,3,4,5); $i; foreach($foo as $bar): $i++; echo $bar; endforeach; 但是,我不确定如何说: if $i == 4 >> interject unique code continue loop 在这种情况下,正常的if语句应该适用于您:

我试图创建一个简单的foreach循环。但是,在3刚刚完成之后,我只需要运行一个惟一语句,只运行一次。然后继续我刚才讲到的地方。这是我的循环:

$foo = array(1,2,3,4,5);

$i;
foreach($foo as $bar):
$i++;
    echo $bar;
endforeach;
但是,我不确定如何说:

if $i == 4
>> interject unique code
continue loop
在这种情况下,正常的if语句应该适用于您:

$i = 0;
foreach ($foo as $bar) {
    echo $bar;

    if ($i++ == 4) {
        // do unique code
    }
}

当$i为4时,这将只执行一次,除非您在循环中明确地将$i设置在$i++之外的某个位置。

您将使用一个简单的if语句

foreach($foo as $bar):
    $i++;
    if($i==4) {
      // run unique statement
    }
    echo $bar;
endforeach;

使用这里的$i变量

$foo = array(1,2,3,4,5);

$i;
foreach($foo as $bar):
    echo $bar;

    if ($i++ == 4)
    {
        // 1-off code goes here
    }
endforeach;
试用

  $foo = array(1,2,3,4,5);

    $i = 0;
    foreach($foo as $bar):
    $i++;
       if($i=='4'){
          //interject unique code
           continue;
        }
        echo $bar;
    endforeach;

当$i达到4时,将只执行continue之前if块中的代码,循环将继续执行下一个值。

只需在foreach中放置一个if语句,它将仅在第三个循环后使用

$foo = array(1,2,3,4,5);

// Your array key will give you your iteration number
foreach($foo as $key => $val):
{

    echo $bar;
    if $key == 3
    {
        echo "I'm in the fourth iteration";
        //Or any other code
    }
}

foreach$foo作为$key=>$bar:然后您可以检查$key==3…您能详细说明一下吗?我还是一个初学者:@JonathanKuhn,如果数组的形式是数组'a'=>1,'carl'=>2,14=>79;,那么检查$key是无效的@tymie,已经发布了几个答案,显示了正确的实现。然而,@JonathanKuhn使用的符号在许多情况下都非常有用。您可能想快速查看一下手册:@MjrKusanagi:是的,如果数组不是数字或没有3键,那么它将无法工作。然而,给定OPs示例数组,这将很好地工作。我只是展示了另一种完成任务的方法。谢谢,如果删除continue,会发生什么?在这种情况下,整个循环都将执行。当条件满足时,只执行if块之间的代码..检查字符串和整数之间的相等性不是好的做法,尤其是用这种方式。为什么不改用if$i==4{……我也在想,我希望那个人至少能在评论中表达自己的不满。