我有2个Foreach-Loops。其中一个嵌套在另一个中,例如:
foreach(...){
foreach(...){
//if statement
}
}
在内部循环中我得到了一个if语句,如果这个语句返回true,我想打破内部循环并继续下一个outter循环。有没有办法实现这个? "休息2; "因为我需要继续进行外部循环,所以不会工作。
答案 0 :(得分:2)
与break
一样,您也可以向continue
添加一个数字:
foreach(...) {
foreach(...) {
if (...)
continue 2;
}
// this will be skipped
}
来自文档:
继续接受一个可选的数字参数,告诉它有多少 封闭循环的级别应该跳到结尾。默认 value为1,因此跳到当前循环的末尾。
答案 1 :(得分:0)
根据PHP documentation,默认值为1,它只会突破立即封装的控件结构
break结束当前执行,foreach,while,do-while或 开关结构。
break接受一个可选的数字参数,告诉它有多少 嵌套的封闭结构将被打破。默认值 是1,只有直接封闭结构被打破。
例如,以下代码:
<?php
foreach(array(1,2,3,4,5) as $num){
foreach(array('a', 'b') as $char){
if($char === 'b') {
break;
}
echo $char;
}
echo $num;
}
// Result: a1a2a3a4a5
在打印'b'之前打破,但继续循环到5。