tp5递归 无限级分类详解分享!

在TP5公共common.php文件里写

  <?php   //计算某个类别所属的类别层数   function getcatelayer($cateid,$flag=1){   $cates = M('Gcategory');   $ini['cate_id'] = $cateid;   $arr = $cates->where($ini)->find();   if($arr['parent_id']!=0){    $flag = getcatelayer($arr['parent_id'],$flag+1);   }   return $flag;   }     //类别递归(单层)  function getone($arr,$parent=0,$lev=0){   //迭代   $task=array($parent);//任务数组   $tree=array();//结果数组   while (!empty($task)){   $flg=false;   foreach ($arr as $k=>$v){        if ($v['parent_id']==$parent) {    $tree[]=array(     'id'=>$v['cate_id'],     'name'=>$v['cate_name'],     'lev'=>$lev    );    array_push($task, $v['cate_id']);    $parent=$v['cate_id'];    $lev=$lev+1;    unset($arr[$k]);    $flg=true;    }      }   if ($flg==false) {    array_pop($task);    $parent=end($task);    $lev=$lev-1;   }   }   return $tree;     }  //类别递归(多层)  function getCates($arr,$pid=0)  {   for($i=0; $i<count($arr); $i++){    if($arr[$i]['parent_id']==$pid){    $newArr[] = array(     "id"=>$arr[$i]['cate_id'],     "name"=>$arr[$i]['cate_name'],     'son'=>getCates($arr,$arr[$i]['cate_id']),    );    }   }   return $newArr;  }        //查询类别所属级  function getlayer($cateid,$flg=1)  {   $gcg=M("Gcategory");   $ini["cate_id"]=$cateid;   $cateArr=$gcg->where($ini)->find();   if($cateArr['parent_id']!=0)   {   $flg=getlayer($cateArr['parent_id'],$flg+1);   }   return $flg;  }

一般只用其中的递归单层就可以了

控制器中

  <?php  //分类管理  namespace appadminController;  use thinkDb;  use thinkController;  class CategoryController extends Controller  {    /**   * 分类列表页(递归)   */   public function category_list()   {   header('content-type:text/html;charset=utf-8');   $categoryArr=db::name('表名')->select();   //调用递归函数   $getall=getone($categoryArr);   $this->assign("getall",$getall);   return $this->fetch()   }

视图 view中

   <div class="conShow">          <table border="1" cellspacing="0" cellpadding="0">            <tr>              <td  class="tdColor tdC">id</td>              <td  class="tdColor">汽车类型</td>              <td  class="tdColor">操作</td>            </tr>            {foreach name="getall" id="v"}            <tr>              <td>{$v.id}</td>              <td >{php}echo str_repeat('&nbsp;',$v['lev']*2){/php}|-{$v['name']}</td>              <td><a href="connoisseuradd.html" rel="external nofollow" ><img class="operation"                                  src="/img/admin/update.png"></a> <img class="operation delban"                                                     src="/img/admin/delete.png"></td>            </tr>            {/foreach}          </table>          <div class="paging">此处是分页</div>        </div>

以上这篇tp5递归 无限级分类详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持<计算机技术网(www.ctvol.com)!!>。

—-想了解tp5递归 无限级分类详解分享!且更多的php教程关注<计算机技术网(www.ctvol.com)!!>

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/phpttorial/470760.html

(0)
上一篇 2020年10月26日
下一篇 2020年10月26日

精彩推荐