首頁  >  問答  >  主體

php中break 2 和 continue 2 的区别是什么呢?

continue和break的区别我是知道的。
那continue num 和 break num的区别是什么呢?

PHPzPHPz2771 天前685

全部回覆(3)我來回復

  • 怪我咯

    怪我咯2017-04-11 09:56:10

    break是结束整个循环体,continue是结束单次循环
    break num是结束外层第num层整个循环体,continue num 是结束外层第num层单次循环

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-11 09:56:10

    <?php
        
        foreach($arr1 as $value1)
        {
            foreach($value1 as $value2)
            {
                if($value2 == 0)
                {
                   continue; //继续下次循环,在里层的foreach里面,默认为1
                   continue 2;//继续下次循环,在外层的foreach里面 
                   break; 则同理
                }
            }
        
        }
    
    

    回覆
    0
  • 怪我咯

    怪我咯2017-04-11 09:56:10

    break是跳出循环,而continue是开始执行下一次循环。那么对于加了数字的break和continue是用来标识层层循环嵌套。当遇上一个循环中嵌套多个循环,这时候的未加数字的break和continue,代表的都是包含break(等于break 1)和continue(等于continue 1)最里面的一层循环的循环结构要么开始最里面一层循环的下一层循环要么终止最里面的一层循环,而continue 2和 break 2则是代表包含这个continue 2和 break 2得最里面倒数第二层循环,以此类推:

    <?php
    $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;

    }

    回覆
    0
  • 取消回覆