无限级分类三种方法
来源:互联网 发布:创业用什么软件 编辑:程序博客网 时间:2024/05/22 15:00
function sort($category,$parent_id=0,$level=0){ static $arr=array(); foreach($category as $k=>$v){ if($v['parent_id']==$parent_id){ $v['level']=$level; $arr[]=$v; unset($category[$k]);//已经排好等级的,从数组中移除,提高性能 $this->sort($category,$v['id'],$level+1); } } return $arr; } function sort2($category,$parent_id=0,$level=0){ $res=array(); foreach($category as $c){ if($c['parent_id']==$parent_id){ $c['level']=$level; $arr[]=$c; $res=array_merge($arr,$this->sort($category,$c['id'],$level+1)); } } return $res; } /** * 得到分类级数,并将他们的上下级关系,体现在返回数组中 * @param unknown $category * @param number $parent_id * @param number $level * @return multitype:array */ function category($category,$parent_id=0,$level=0){ $arr=array(); foreach($category as $k=>$v){ if($v['parent_id']==$parent_id){ $v['level']=$level; $v['child']=$this->category($category,$v['id'],$level+1); $arr[]=$v; } } return $arr; }
0 0