无限级分类三种方法

来源:互联网 发布:创业用什么软件 编辑:程序博客网 时间: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