PHP foreach()跳出本次或當前循環與終止循環方法

PHPforeach()跳出本次或當前循環與終止循環方法

 PHP中用foreach()循環中,想要在循環的時候,當知足某個條件時,想php

複製代碼
$arr = array('a','b','c','d','e');
$html = '';
foreach($arr as $key => $value){
    if($value=='b'){
        $html .= $value;
        continue; // 當 $value爲b時,跳出本次循環
    }
    if($value=='c'){
        $html .= $value;
        break; // 當 $value爲c時,終止循環
    }
    $html .= $value;
}
echo $html; // 輸出: ab
複製代碼

 

下面是本身的實際例子html

//父級欄目
    public function parentList($id)
    {
        //查詢該欄目下全部子類數據
        $categoryData = db("category")->where("id=".$id)->find();
        //dump($categoryData);
        if(!$categoryData){
            $this->error("參數錯誤");
        }else{
            $this->assign('categoryData',$categoryData);
            //查詢該欄目下全部子類數據即 pid=$id
            $category = db("category")->select();

            $praProductData = $this->toLayer($category);
       //dump($praProductData);
            foreach($praProductData as $k=>$v) {
                //若是有子類目
                if (!empty($v['zilei']) && $v['id']==$id) {
                    $praductData = Db::table("ven_article")
                        ->alias('a')
                        ->join('ven_category w','a.cid=w.id')
                        ->where("a.status=1 and w.pid='".$id."'")
                        ->field("a.id,a.title,a.faceimg,a.time_report,a.resume,a.cid,w.name")
                        ->order('a.id DESC')
                        ->paginate(6);
                        //dump($praductData);
                        break;
                }else{
                    //沒有子類
                    if ($v['id'] == $id) {
                        $praductData = Db::table("ven_article")
                                ->alias('a')
                                ->join('ven_category w','a.cid=w.id')
                                ->where("a.status=1 and a.cid=".$id)
                                ->field("a.id,a.title,a.faceimg,a.time_report,a.resume,a.cid,w.name")
                                ->order('a.id DESC')
                                ->paginate(6);

                        //dump($praductData);
                        break;
                    }
                }
            }

            $data = $praductData->toArray()['data'];//或者$data = $praductDatas->all();

            if($data){
                $this->assign('a',1);
            }
            $page = $praductData->render();

            $this->assign('Page',$page);
            $this->assign("newPraProduct",$praductData);

        }

        return view("ParentList");
    }  

打印$praProductData結果以下:post

array(5) {
  [0] => array(9) {
    ["id"] => int(1)
    ["pid"] => int(0)
    ["path"] => string(3) "0-1"
    ["name"] => string(9) "風幕櫃"
    ["status"] => int(1)
    ["seo_title"] => string(0) ""
    ["seo_keys"] => string(0) ""
    ["seo_desc"] => string(0) ""
    ["zilei"] => array(2) {
      [0] => array(9) {
        ["id"] => int(2)
        ["pid"] => int(1)
        ["path"] => string(5) "0-1-2"
        ["name"] => string(21) "飲料超市風幕櫃"
        ["status"] => int(1)
        ["seo_title"] => string(0) ""
        ["seo_keys"] => string(21) "飲料超市風幕櫃"
        ["seo_desc"] => string(21) "飲料超市風幕櫃"
        ["zilei"] => array(0) {
        }
      }
      [1] => array(9) {
        ["id"] => int(37)
        ["pid"] => int(1)
        ["path"] => string(6) "0-1-37"
        ["name"] => string(15) "超市風幕櫃"
        ["status"] => int(1)
        ["seo_title"] => string(0) ""
        ["seo_keys"] => string(15) "超市風幕櫃"
        ["seo_desc"] => string(15) "超市風幕櫃"
        ["zilei"] => array(0) {
        }
      }
    }
  }
  [1] => array(9) {
    ["id"] => int(33)
    ["pid"] => int(0)
    ["path"] => string(4) "0-33"
    ["name"] => string(15) "環島風幕櫃"
    ["status"] => int(1)
    ["seo_title"] => string(15) "環島風幕櫃"
    ["seo_keys"] => string(15) "環島風幕櫃"
    ["seo_desc"] => string(15) "環島風幕櫃"
    ["zilei"] => array(0) {
    }
  }
  [2] => array(9) {
    ["id"] => int(46)
    ["pid"] => int(0)
    ["path"] => string(4) "0-46"
    ["name"] => string(9) "點菜櫃"
    ["status"] => int(1)
    ["seo_title"] => string(9) "點菜櫃"
    ["seo_keys"] => string(9) "點菜櫃"
    ["seo_desc"] => string(9) "點菜櫃"
    ["zilei"] => array(0) {
    }
  }
  [3] => array(9) {
    ["id"] => int(48)
    ["pid"] => int(0)
    ["path"] => string(4) "0-48"
    ["name"] => string(9) "鮮花櫃"
    ["status"] => int(1)
    ["seo_title"] => string(9) "鮮花櫃"
    ["seo_keys"] => string(9) "鮮花櫃"
    ["seo_desc"] => string(9) "鮮花櫃"
    ["zilei"] => array(0) {
    }
  }
  [4] => array(9) {
    ["id"] => int(53)
    ["pid"] => int(0)
    ["path"] => string(4) "0-53"
    ["name"] => string(9) "藥品櫃"
    ["status"] => int(1)
    ["seo_title"] => string(0) ""
    ["seo_keys"] => string(0) ""
    ["seo_desc"] => string(0) ""
    ["zilei"] => array(2) {
      [0] => array(9) {
        ["id"] => int(54)
        ["pid"] => int(53)
        ["path"] => string(7) "0-53-54"
        ["name"] => string(15) "藥品陰涼櫃"
        ["status"] => int(1)
        ["seo_title"] => string(0) ""
        ["seo_keys"] => string(0) ""
        ["seo_desc"] => string(0) ""
        ["zilei"] => array(0) {
        }
      }
      [1] => array(9) {
        ["id"] => int(55)
        ["pid"] => int(53)
        ["path"] => string(7) "0-53-55"
        ["name"] => string(15) "藥品冷藏櫃"
        ["status"] => int(1)
        ["seo_title"] => string(0) ""
        ["seo_keys"] => string(0) ""
        ["seo_desc"] => string(0) ""
        ["zilei"] => array(0) {
        }
      }
    }
  }
}

  

要跳出本次循環繼續執行下次循環,或者知足某個條件的時候,終止foreach()循環,分別會用到:continue 與 break。this

相關文章
相關標籤/搜索