从数据库从查询出所有分类$data,并把分类通过下面的方法,把子类放在父类的son字段里面,这样就可以把子类跟父类关联起来
function gettree($data){
foreach($data as $i => $class){
$items[$class['id']] = $class;
unset($items['1']);
}
foreach($items as $item){
if($item['pid'] > 1){
$items[$item['pid']]['son'][] = &$items[$item['id']];
}else{
$tree[] = &$items[$item['id']];
}
}
return $tree;
}
把返回的$tree数据,通过下面的递归方法,对分类进行有效的排序,达到最终需要的排序方式
function getChildren($parent,$deep=0) {
foreach($parent as $i => $row) {
$data[] = array("id"=>$row['id'], "name"=>$row['name'],"pid"=>$row['pid'],'deep'=>$deep,'desc'=>$row['desc']);
if ($row['son']) {
$data = array_merge($data, getChildren($row['son'], $deep+1));
}
}
return $data;
}