function getSonLists($upid=0,$space=‘‘){ ???$icon = array( ???????‘ ?????│‘, ???????‘ ?????├─‘, ???????‘ ?????└─‘ ???); ?//格式化的字符 ???$category_type = $this->category_type; ???$map[‘up_id‘] = array(‘eq‘,$upid); ???// $map[‘id‘] = array(‘neq‘,1); ???$lists = M(‘Category‘)->where($map)->field(‘id,catname,up_id,status,sort,model_id,path,type‘)->order(‘sort asc,id asc‘)->select(); ???$n = count($lists); ???$cat_all = array(); ???if($n){ ???????$m=1; ???????for($i=0;$i<$n;$i++){ ???????????if($n==$m){//只有一个子栏目/最后一个栏目 ???????????????$pre = $icon[2]; ???????????}else{ ???????????????$pre = $icon[1]; ???????????} ???????????????$pad = $space ? $icon[0] : ""; ???????????$lists[$i][‘name‘]=($space ? $space.$pre : "").$lists[$i][‘catname‘]; ???????????$cat_all[]=$lists[$i]; ???????????$cat_bbb=$this->getSonLists($lists[$i][‘id‘], $space.$pad." "); //递归下一级分类 ???????????if(count($cat_bbb)){//包含子栏目 合并 ???????????????$cat_all=array_merge($cat_all,$cat_bbb); ???????????} ???????????$m++; ???????} ???} ???return $cat_all;}
thinkphp 简单的无限分类实现
原文地址:http://blog.51cto.com/9300893/2088607