Подтвердить что ты не робот

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;
        }
    }
}
4b9b3361

Ответ 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.
}

Ответ 5

Попробуйте break вместо continue.

Вы можете следовать break с целым числом, указывая на то, что число циклов выйдет из.

Ответ 6

Это будет продолжаться до уровней выше (так что внешний foreach)

 continue 2