zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    RAC连接时的2种方式Connect Time Failver和taf
    ElasticSearch Root身份运行
    sql in按照指定顺序排序
    JAVA字符串格式化-String.format()的使用
    java.lang.IllegalArgumentException: An invalid domain [.test.com] was specified for this cookie
    全文搜索引擎 Elasticsearch 入门教程
    监控页面后退前进,浏览器文档加载事件之pageshow、pagehide
    ios 上浏览器返回上一页不会刷新页面问题,页面初始化的方法不执行
    SQL之case when then用法
    MySQL表的四种分区类型
  • 原文地址:https://www.cnblogs.com/zmdComeOn/p/11126011.html
Copyright © 2011-2022 走看看