您的位置:首页 > 编程语言 > PHP开发

php一种分类的排序方法

2016-05-21 00:00 429 查看
摘要: 该方法需要数据表有3个字段,id,pid,name,通过算法对分类进行简单的排序

从数据库从查询出所有分类$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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: