我希望在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等价物?
在2个嵌套循环的情况下:
break 2;
http://php.net/manual/en/control-structures.break.php
PHP手册说
break接受一个可选的数字参数,告诉它有多少嵌套的封闭结构被打破.
break 2;
您只需使用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.后藤是邪恶的(被认为是不好的做法)
您可以使用break 2;
同时打破两个循环.它与"命名"循环的示例并不完全相同,但它可以解决问题.
$i = new MovieClip(); foreach ($movieClipArray as $i) { $nameArray = array(); foreach ($nameArray as $n) if ($i->name == $n) break 2; }