Использовать Goto?

у разорвать внешний цикл 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?

 Felix Kling04 мая 2011 г., 10:14
Всегда сначала смотрите документацию:php.net/manual/en/control-structures.break.php
 Edgar Villegas Alvarado04 мая 2011 г., 10:22
Я опубликовал 2 решения, одно с ярлыками, как в сценарии действия, а другое просто используетbreak

Ответы на вопрос(6)

Вы можете использовать только оператор break-n:

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

Если вы в php> = 5.3, вы можете использовать метки иgotos, как в сценарии действия:

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

Но goto нужно использовать осторожно. Гото естьзло (считается плохой практикой)

 Ruggi19 мая 2016 г., 16:14
В этой заметке я считаю, что эта страница актуальна:php.net/manual/en/control-structures.goto.php
 Edgar Villegas Alvarado29 авг. 2013 г., 10:05
Да. Вот почему я сказал: «Гото нужно использовать осторожно»
 lucian30331 мая 2013 г., 21:14
Есть вполне допустимые варианты использования goto. Даже eval () не является злом (и оно есть). Он имеет даже меньше пользы, чем goto.

Использовать Goto?

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

Руководство по PHP говорит

break принимает необязательный числовой аргумент, который сообщает ему, сколько вложенных вложенных структур должно быть разорвано.

break 2;
Решение Вопроса

В случае 2-х вложенных циклов:

break 2;

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

 Arash Moosapour27 июн. 2017 г., 16:00
это идет наcontinue 2просто для большей информации =)

break 2; вырваться из двух петель одновременно. Это не совсем то же самое, что ваш пример с «именованными» циклами, но это поможет.

    $i = new MovieClip();
    foreach($movieClipArray as $i)
    {
          $nameArray = array();
          foreach($nameArray as $n) if($i->name==$n) break 2;
    }
 Marty04 мая 2011 г., 10:18
Хорошая попытка конвертировать весь предоставленный код в PHP, хотя оператор break не делает то, что мне нужно (он только завершает внутренний цикл).
 Jordan Arseno04 мая 2011 г., 10:22
обновить страницу :) я заменил наперерыв 2 ... который в соответствии с PHP Manual: «break принимает необязательный числовой аргумент, который сообщает ему, сколько вложенных вложенных структур нужно вырвать».

Ваш ответ на вопрос