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

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

PHP中用foreach()循环中,想要在循环的时候,当满足某个条件时,想

$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

下面是自己的实际例子

//父级栏目

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结果如下:

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、付费专栏及课程。

余额充值