我正在寻找打破PHP的外部for/foreach循环。如何使用PHP打破外部循环?
这可以在ActionScript来完成,像这样:
top : for each(var i:MovieClip in movieClipArray)
{
for each(var j:String in nameArray)
{
if(i.name == j) break top;
}
}
什么是PHP相同呢?
我正在寻找打破PHP的外部for/foreach循环。如何使用PHP打破外部循环?
这可以在ActionScript来完成,像这样:
top : for each(var i:MovieClip in movieClipArray)
{
for each(var j:String in nameArray)
{
if(i.name == j) break top;
}
}
什么是PHP相同呢?
去'继续2',只是为了更多的信息=) – 2017-06-27 14:00:16
您可以使用break 2;
同时打破两个循环。这与你的“命名”循环的例子并不完全一样,但它会起到诀窍的作用。
使用goto?
for($i=0,$j=50; $i<100; $i++)
{
while($j--)
{
if($j==17)
goto end;
}
}
echo "i = $i";
end:
echo 'j hit 17';
$i = new MovieClip();
foreach($movieClipArray as $i)
{
$nameArray = array();
foreach($nameArray as $n) if($i->name==$n) break 2;
}
很好的尝试将整个提供的代码转换为PHP,虽然break语句没有做我需要它做什么(它只会结束内部循环)。 – Marty 2011-05-04 08:18:45
刷新你的页面:)我用_break 2_替换......根据PHP手册:“break接受一个可选的数字参数,告诉它有多少嵌套的封闭结构将被分解出来。” – 2011-05-04 08:22:29
您可以只用一个突破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。转到邪恶(认为不好的做法)
总是先看看文档:http://php.net/manual/en/control-structures.break.php – 2011-05-04 08:14:59
我已经发布了2个解决方案,一个与标签,如在行动脚本和其他只是使用'break' – 2011-05-04 08:22:54