如何用PHP打破外部循环?

时间:2011-05-04 08:11:26

标签: php for-loop break

我希望在PHP中打破外部for / foreach循环。

这可以在ActionScript中完成,如下所示:

top : for each(var i:MovieClip in movieClipArray)
{
    for each(var j:String in nameArray)
    {
        if(i.name == j) break top;
    }
}

什么是PHP等价物?

6 个答案:

答案 0 :(得分:251)

在2个嵌套循环的情况下:

break 2;

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

答案 1 :(得分:32)

PHP Manual

  

break接受可选的数字   这个论点告诉它有多少   嵌套的封闭结构   打破了。

break 2;

答案 2 :(得分:15)

您只能使用break-n语句:

foreach(...)
{
    foreach(...)
    {
        if(i.name == j) break 2; //Breaks 2 levels, so breaks outermost foreach
    }
}

如果你在php> = 5.3,你可以使用标签和goto s,类似于动作脚本:

 foreach(...)
{        
    foreach(...)
    {
        if(i.name == j) goto top;
    }
}
top :

但必须谨慎使用goto。 Goto是 evil (被认为是不好的做法)

答案 3 :(得分:12)

您可以使用break 2;同时打破两个循环。它与你的“命名”循环的例子并不完全相同,但它可以解决问题。

答案 4 :(得分:6)

    $i = new MovieClip();
    foreach($movieClipArray as $i)
    {
          $nameArray = array();
          foreach($nameArray as $n) if($i->name==$n) break 2;
    }

答案 5 :(得分:4)

使用转到?

for($i=0,$j=50; $i<100; $i++) 
{
  while($j--) 
  {
    if($j==17) 
      goto end; 
  }  
}
echo "i = $i";
end:
echo 'j hit 17';