加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

PHP实现无限极分类生成分类树的方法

发布时间:2021-03-06 06:42:44 所属栏目:编程 来源:网络整理
导读:本篇章节讲解PHP实现无限极分类生成分类树的方法。供大家参考研究具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出的数据就是如下的格式: 1,"pid

本篇章节讲解PHP实现无限极分类生成分类树的方法。分享给大家供大家参考,具体如下:

现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出的数据就是如下的格式:

1,"pid" => 0,'cat' => '栏目一'),array("id" => 2,'cat' => '栏目二'),array("id" => 3,"pid" => 1,'cat' => '栏目三'),array("id" => 4,"pid" => 2,'cat' => '栏目四'),array("id" => 5,'cat' => '栏目五'),array("id" => 6,"pid" => 5,'cat' => '栏目六'),array("id" => 7,'cat' => '栏目七'),array("id" => 8,"pid" => 6,'cat' => '栏目八'),array("id" => 9,'cat' => '栏目九'),array("id" => 10,'cat' => '栏目十'),array("id" => 11,"pid" => 10,'cat' => '栏目十一'),array("id" => 12,"pid" => 11,'cat' => '栏目十二'),array("id" => 13,'cat' => '栏目十三'),array("id" => 14,"pid" => 13,'cat' => '栏目十四') );

不多说,直接上处理代码:

$v){ $refer[$v['id']] = & $arr[$k]; //创建主键的数组引用 } foreach($arr as $k => $v){ $pid = $v['pid']; //获取当前分类的父级id if($pid == 0){ $tree[] = & $arr[$k]; //顶级栏目 }else{ if(isset($refer[$pid])){ $refer[$pid]['subcat'][] = & $arr[$k]; //如果存在父级栏目,则添加进父级栏目的子栏目数组中 } } } return $tree; }

测试运行:

运行结果:

Array ( [id] => 1 [pid] => 0 [cat] => 栏目一 [subcat] => Array ( [0] => Array ( [id] => 3 [pid] => 1 [cat] => 栏目三 ) [1] => Array ( [id] => 5 [pid] => 1 [cat] => 栏目五 [subcat] => Array ( [0] => Array ( [id] => 6 [pid] => 5 [cat] => 栏目六 [subcat] => Array ( [0] => Array ( [id] => 8 [pid] => 6 [cat] => 栏目八 ) ) ) [1] => Array ( [id] => 7 [pid] => 5 [cat] => 栏目七 ) ) ) [2] => Array ( [id] => 9 [pid] => 1 [cat] => 栏目九 ) ) ) [1] => Array ( [id] => 2 [pid] => 0 [cat] => 栏目二 [subcat] => Array ( [0] => Array ( [id] => 4 [pid] => 2 [cat] => 栏目四 ) [1] => Array ( [id] => 13 [pid] => 2 [cat] => 栏目十三 [subcat] => Array ( [0] => Array ( [id] => 14 [pid] => 13 [cat] => 栏目十四 ) ) ) ) ) [2] => Array ( [id] => 10 [pid] => 0 [cat] => 栏目十 [subcat] => Array ( [0] => Array ( [id] => 11 [pid] => 10 [cat] => 栏目十一 [subcat] => Array ( [0] => Array ( [id] => 12 [pid] => 11 [cat] => 栏目十二 ) ) ) ) ) )

如果大家需要这样的组装格式,或者需要该格式方便后续的处理,可以尝试此方法

更多关于PHP相关内容感兴趣的读者可查看本站专题:《》、《》、《》、《》、《》、《》及《》

希望本文所述对大家PHP程序设计有所帮助。

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读