我希望在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等价物?
答案 0 :(得分:251)
答案 1 :(得分:32)
答案 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';