分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 前端开发

【PHP原生】递归实现无限级分类树状展示数据

发布时间:2023-09-06 02:18责任编辑:赖小花关键词:PHP递归

主要应用领域:无限极分类的菜单栏、对评论进行无限次追评 ...

1、数据库设计要求:每一条记录都需要存在id(主键)和pid(父用户id)字段。
2、查询数据库获取所有的记录组成的数组。
3、递归组合成新的数组
//封装成类里面的方法//$data表示所有的记录组成的数组。&寻址增加查询效率。public function getTree(&$data, $parentId = 0){$tree = [];foreach($data as $k => $v){if($v[‘pid‘] == $parentId){ //父亲找到儿子$v[‘child‘] = self::getTree($data, $v[‘id‘]); //封装成函数的时候,需要去掉self::这个标识。 ?$tree[] = $v;unset($data[$k]); // 释放原始数据变量}}return $tree;}
4、显示结果举例
排序前:
array(8) {[0] => array(6) {["id"] => int(1)["memb_id"] => int(4)["content"] => string(13) "回复内容1"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)}[1] => array(6) {["id"] => int(2)["memb_id"] => int(4)["content"] => string(13) "回复内容2"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)}[2] => array(6) {["id"] => int(3)["memb_id"] => int(4)["content"] => string(13) "回复内容3"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)}[3] => array(6) {["id"] => int(4)["memb_id"] => int(4)["content"] => string(13) "回复内容4"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(1)}[4] => array(6) {["id"] => int(5)["memb_id"] => int(4)["content"] => string(13) "回复内容5"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(4)}[5] => array(6) {["id"] => int(6)["memb_id"] => int(4)["content"] => string(13) "回复内容6"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(4)}[6] => array(6) {["id"] => int(7)["memb_id"] => int(4)["content"] => string(13) "回复内容7"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(5)}[7] => array(6) {["id"] => int(8)["memb_id"] => int(4)["content"] => string(13) "回复内容8"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(6)}}
排序后:
array(3) {[0] => array(7) {["id"] => int(1)["memb_id"] => int(4)["content"] => string(13) "回复内容1"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)["child"] => array(1) {[0] => array(7) {["id"] => int(4)["memb_id"] => int(4)["content"] => string(13) "回复内容4"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(1)["child"] => array(2) {[0] => array(7) {["id"] => int(5)["memb_id"] => int(4)["content"] => string(13) "回复内容5"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(4)["child"] => array(1) {[0] => array(7) {["id"] => int(7)["memb_id"] => int(4)["content"] => string(13) "回复内容7"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(5)["child"] => array(0) {}}}}[1] => array(7) {["id"] => int(6)["memb_id"] => int(4)["content"] => string(13) "回复内容6"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(4)["child"] => array(1) {[0] => array(7) {["id"] => int(8)["memb_id"] => int(4)["content"] => string(13) "回复内容8"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(6)["child"] => array(0) {}}}}}}}}[1] => array(7) {["id"] => int(2)["memb_id"] => int(4)["content"] => string(13) "回复内容2"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)["child"] => array(0) {}}[2] => array(7) {["id"] => int(3)["memb_id"] => int(4)["content"] => string(13) "回复内容3"["add_time"] => int(1500622839)["ask_id"] => int(1)["pid"] => int(0)["child"] => array(0) {}}}

【PHP原生】递归实现无限级分类树状展示数据

原文地址:https://www.cnblogs.com/php99/p/9796969.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved