php break 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。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值