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;
}
从数据库从查询出所有分类$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;
}
相关文章推荐
- yii2分页的基本使用及其配置详解
- Laravel5学生成绩管理系统-05-分页
- Laravel5学生成绩管理系统-06-资源控制器删除学生
- tftp_nfs_samba搭建
- phpstorm中的项目配置开发环境
- yii2-gii的详细操作步骤
- 7——PHP选择结构
- yii2搭建完美后台并实现rbac权限控制案例 - 之权限控制详细操作步骤
- 6——PHP顺序结构&&字符串连接符
- yii2搭建完美后台并实现rbac权限控制案例 - 之菜单menu详细教程
- php 保存到mysql数据库中的中文乱码
- 拥有编译器影子的PHP视图引擎Smarty
- PHP单例模式编写
- PHP单例模式编写
- ThinkPHP表单操作(未加验证)
- PHP CURL CURLOPT参数说明(curl_setopt)
- 我从新手看到的新手应该注意的情况
- FleaPHP的单入口文件详解
- PHP之路——MySql查询语句
- PHP之路——MySql基础操作语句