我正在尋找打破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