PHP, продолжить; on foreach() {foreach() {
Есть ли способ продолжить работу на внешнем foreach в случае, если внутренний foreach соответствует некоторому утверждению?
В примере
foreach($c as $v)
{
foreach($v as $j)
{
if($j = 1)
{
continue; // But not the internal foreach. the external;
}
}
}
Ответы
Ответ 1
Попробуйте это, должно работать:
continue 2;
Из руководства PHP:
Continue принимает необязательный числовой аргумент, который сообщает ему, сколько уровней охватывающих циклов он должен пропустить до конца.
здесь в примерах (2-й точно) описанный вам код
Ответ 2
Попробуйте следующее: continue 2;
В соответствии с руководством:
continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of.
Ответ 3
В этой ситуации есть два решения: используйте break
или continue 2
. Обратите внимание, что при использовании break для выхода из внутреннего цикла любой код после внутреннего цикла будет выполняться.
foreach($c as $v)
{
foreach($v as $j)
{
if($j = 1)
{
break;
}
}
echo "This line will be printed";
}
Другим решением является использование continue
, за которым следует количество уровней для продолжения.
foreach($c as $v)
{
foreach($v as $j)
{
if($j = 1)
{
continue 2;
}
}
// This code will not be reached.
}
Ответ 4
<?php
foreach($c as $v)
{
foreach($v as $j)
{
if($j = 1)
{
continue 2; // note the number 2
}
}
}
?>
окончательная первоначальная версия
Ответ 5
Попробуйте break
вместо continue
.
Вы можете следовать break
с целым числом, указывая на то, что число циклов выйдет из.
Ответ 6
Это будет продолжаться до уровней выше (так что внешний foreach)
continue 2
Ответ 7
вы должны использовать break
вместо продолжения, если я получу вас правильно
Здесь я написал объяснение по этому вопросу: Что подразумевается под номером после "break" или "продолжить" в PHP?