PHP, продолжить;на foreach () {foreach () { - PullRequest
34 голосов
/ 20 октября 2011

Есть ли способ продолжить на внешнем foreach, если внутренний foreach соответствует какому-либо утверждению?

Например

foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue; // But not the internal foreach. the external;
        }
    }
}

Ответы [ 7 ]

76 голосов
/ 20 октября 2011

Попробуйте, должно работать:

continue 2;

Из руководства по PHP:

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

здесь в примерах (2-й точно) описан необходимый вам код

10 голосов
/ 20 октября 2011

Попробуйте: continue 2; Согласно инструкции:

continue accepts an optional numeric argument which tells it how many levels of enclosing loops it should skip to the end of. 
6 голосов
/ 20 октября 2011

Для этой ситуации доступны два решения: либо 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.
}
3 голосов
/ 20 октября 2011
<?php
foreach($c as $v)
{
    foreach($v as $j)
    {
        if($j = 1)
        {
            continue 2; // note the number 2
        }
    }
}
?>

RTM

3 голосов
/ 20 октября 2011

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

 continue 2
2 голосов
/ 20 октября 2011

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

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

0 голосов
/ 20 октября 2011

вы должны использовать break вместо продолжения, если я вас правильно понял

Здесь я написал объяснение по этому вопросу: Что означает число после «перерыва» или «продолжения»"в PHP?

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