Вложенный цикл, разрыв внутренних циклов и продолжение основного цикла

У меня есть следующий цикл, и я хочу continue цикл while, когда проверка внутри внутреннего цикла удовлетворяет условию. Я нашел решение Вот (который я применил в следующем примере), но это для c#,

    $continue = false;
while($something) {

foreach($array as $value) {
if($ok) {
$continue = true;
break;
// continue the while loop
}

foreach($value as $val) {
if($ok) {
$continue = true;
break 2;
// continue the while loop
}
}
}

if($continue == true) {
continue;
}
}

Является ли PHP имеет свой собственный встроенный способ continue основной цикл, когда внутренние петли были breakушел?

7

Решение

Прочитав комментарий к этому вопросу (который был удален его автором) и сделал небольшое исследование, я обнаружил, что есть также параметр для continue как break, Мы можем добавить номер к continue вот так:

while($something) {

foreach($array as $value) {
if($ok) {
continue 2;
// continue the while loop
}

foreach($value as $val) {
if($ok) {
continue 3;
// continue the while loop
}
}
}
}
13

Другие решения

Я думаю, что вы не управляете continue пока вы не обработаете полный внутренний foreach, это не имеет значения. Вам необходимо выполнить continue на месте, а не ждать до конца цикла.

Измените код на этот

while($something) {

foreach($array as $value) {
if($ok) {
continue;    // start next foreach($array as $value)
}

foreach($value as $val) {
if($ok) {
break 2;    // terminate this loop and start next foreach($array as $value)
}
}
}

}

RE: Ваш комментарий

while($something) {

if($somevalue) {
// stop this iteration
// and start again at iteration + 1
continue;
}


}
0