PHP,继续; on foreach(){foreach(){

时间:2011-10-20 10:37:49

标签: php foreach

如果内部的foreach符合某些声明,是否有办法继续使用外部foreach?

在示例中

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue; // But not the internal foreach. the external;
        }
    }
}

7 个答案:

答案 0 :(得分:75)

试试这个,应该有效:

continue 2;

从PHP手册:

  

继续接受一个可选的数字参数,该参数告诉它应跳过多少级别的封闭循环到结尾。

示例中的

here(完全符合第2条)描述了您需要的代码

答案 1 :(得分:10)

试试这个:continue 2;根据手册:

continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. 

答案 2 :(得分:6)

此情况有两种解决方案,可以使用breakcontinue 2。请注意,当使用break来突破内部循环时,仍然会执行内部循环之后的任何代码。

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            break;
        }
    }
    echo "This line will be printed";
}

另一个解决方案是使用continue,然后再返回多少级别。

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue 2;
        }
    }
    // This code will not be reached.
}

答案 3 :(得分:3)

<?php
foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue 2; // note the number 2
        }
    }
}
?>

RTM

答案 4 :(得分:2)

尝试使用break代替continue

您可以使用整数跟随break,给出要突破的循环数。

答案 5 :(得分:2)

这将继续上面的水平(所以外部的foreach)

 continue 2

答案 6 :(得分:0)

如果我找对你,你必须使用break而不是继续

我在这里写了一个关于此问题的解释:What is meant by a number after "break" or "continue" in PHP?