break是跳出循环,而continue是开始执行下一次循环。那么对于加了数字的break和continue是用来标识层层循环嵌套。当遇上一个循环中嵌套多个循环,这时候的未加数字的break和continue,代表的都是包含break(等于break 1)和continue(等于continue 1)最里面的一层循环的循环结构要么开始最里面一层循环的下一层循环要么终止最里面的一层循环,而continue 2和 break 2则是代表包含这个continue 2和 break 2得最里面倒数第二层循环,以此类推:
$data = array(
array(
'seller_id' => '商家1',
'product_id' => '001'
),
array(
'seller_id' => '商家1',
'product_id' => '002'
),
array(
'seller_id' => '商家1',
'product_id' => '003'
),
array(
'seller_id' => '商家2',
'product_id' => '001'
),
array(
'seller_id' => '商家3',
'product_id' => '001'
),
array(
'seller_id' => '商家3',
'product_id' => '002'
),
array(
'seller_id' => '商家3',
'product_id' => '003'
),
);
$result = array();
foreach($data as $key => $value) {
foreach($value as $k => $val) {
if($val == '商家1') {
continue 2;
}
var_dump($val);die;// continue 2 执行最外层的下一层循环,所以下面不会有输出,此处输出“商家2”
}
var_dump($value);die;
}