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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
