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