PHP foreach()跳出本次或当前循环与终止循环方法

PHP foreach()跳出本次或当前循环与终止循环方法
  PHPforeach()跳出本次或当前循环与终止循环方法
 
  PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想
 
  复制代码
 
  $arr=array('a','b','c','d','e');
 
  $html='';
 
  foreach($arras$key=>$value){
 
  if($value=='b'){
 
  $html.=$value;
 
  continue;//当$value为b时,跳出本次循环
 
  }
 
  if($value=='c'){
 
  $html.=$value;
 
  break;//当$value为c时,终止循环
 
  }
 
  $html.=$value;
 
  }
 
  echo$html;//输出:ab
 
  复制代码
 
  下面是自己的实际例子
 
  //父级栏目
 
  publicfunctionparentList($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($praProductDataas$k=>$v){
 
  //如果有子类目
 
  if(!empty($v['zilei'])&&$v['id']==$id){
 
  $praductData=Db::table("ven_article")
 
  ->alias('a')
 
  ->join('ven_categoryw','a.cid=w.id')
 
  ->where("a.status=1andw.pid='".$id."'")
 
  ->field("a.id,a.title,a.faceimg,a.time_report,a.resume,a.cid,w.name")
 
  ->order('a.idDESC')
 
  ->paginate(6);
 
  //dump($praductData);
 
  break;
 
  }else{
 
  //没有子类
 
  if($v['id']==$id){
 
  $praductData=Db::table("ven_article")
 
  ->alias('a')
 
  ->join('ven_categoryw','a.cid=w.id')
 
  ->where("a.status=1anda.cid=".$id)
 
  ->field("a.id,a.title,a.faceimg,a.time_report,a.resume,a.cid,w.name")
 
  ->order('a.idDESC')
 
  ->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);
 
  }
 
  returnview("ParentList");
 
  }
 
  打印$praProductData结果如下:
 
  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。
 
  

推荐阅读