У меня есть следующий цикл, и я хочу 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
ушел?
Прочитав комментарий к этому вопросу (который был удален его автором) и сделал небольшое исследование, я обнаружил, что есть также параметр для 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
}
}
}
}
Я думаю, что вы не управляете 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;
}
}