tp5递归 无限级分类详解
在TP5公共common.php文件里写
where($ini)->find(); if($arr['parent_id']!=0){ $flag=getcatelayer($arr['parent_id'],$flag+1); } return$flag; } //类别递归(单层) functiongetone($arr,$parent=0,$lev=0){ //迭代 $task=array($parent);//任务数组 $tree=array();//结果数组 while(!empty($task)){ $flg=false; foreach($arras$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; } //类别递归(多层) functiongetCates($arr,$pid=0) { for($i=0;$i$arr[$i]['cate_id'], "name"=>$arr[$i]['cate_name'], 'son'=>getCates($arr,$arr[$i]['cate_id']), ); } } return$newArr; } //查询类别所属级 functiongetlayer($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; }
一般只用其中的递归单层就可以了
控制器中
select(); //调用递归函数 $getall=getone($categoryArr); $this->assign("getall",$getall); return$this->fetch() }
视图view中
{foreachname="getall"id="v"} id 汽车类型 操作 {/foreach} {$v.id} {php}echostr_repeat(' ',$v['lev']*2){/php}|-{$v['name']} 此处是分页
以上这篇tp5递归无限级分类详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。