层级:PHP怎样实现递归按层级查找数据
【温馨提示】本文部分内容来源互联网,仅作参考!如需咨询“PHP怎样实现递归按层级查找数据”等有关服务器、云主机租用、托管、配置、价格问题,请在线咨询YINGSOO客服,获取专业解答!
【畅销主机】美国显卡服务器促销 | 香港站群服务器促销 | 服务器促销活动
【精选好文】买了一台云服务器到底能干嘛?
这篇文章给大家分享的是PHP使用递归来按层级查找数据的内容。小编觉得挺实用的,因此分享给大家做个参考,文中示例代码介绍的非常详细,感兴趣的朋友接下来一起跟随小编看看吧。
原理挺简单的,主要是通过父级id一级一级的循环查找子级,使用PHP循环代码也很容易实现,不过如果层级越多,PHP重复代码也越多,这时可以使用递归来实现这功能。
1、首先查出要使用的数据组成一个数组(避免递归里查询数据库,之后根据这个数组组成自己需要的数据就可以了)
比如得到如下数据:
$data = [ ['id' => '1', 'pid' => '0', 'dsp' => '1'], ['id' => '2', 'pid' => '0', 'dsp' => '2'], ['id' => '3', 'pid' => '0', 'dsp' => '3'], ['id' => '4', 'pid' => '1', 'dsp' => '1-4'], ['id' => '5', 'pid' => '4', 'dsp' => '1-4-5'], ['id' => '6', 'pid' => '5', 'dsp' => '1-4-5-6'], ['id' => '7', 'pid' => '3', 'dsp' => '3-7'], ['id' => '8', 'pid' => '2', 'dsp' => '2-8'], ['id' => '9', 'pid' => '1', 'dsp' => '1-9'], ['id' => '10', 'pid' => '4', 'dsp' => '1-4-10'],];
2、接下来使用递归重组数据,使数据按层级显示。
/** * 根据父级id查找子级数据 * @param $data 要查询的数据 * @param int $pid 父级id */public function recursion($data, $pid = 0){ static $child = []; // 定义存储子级数据数组 foreach ($data as $key => $value) { if ($value['pid'] == $pid) { $child[] = $value; // 满足条件的数据添加进child数组 unset($data[$key]); // 使用过后可以销毁 $this->recursion($data, $value['id']); // 递归调用,查找当前数据的子级 } } return $child;}
得到结果:
[ { "id": "1", "pid": "0", "dsp": "1" }, { "id": "4", "pid": "1", "dsp": "1-4" }, { "id": "5", "pid": "4", "dsp": "1-4-5" }, { "id": "6", "pid": "5", "dsp": "1-4-5-6" }, { "id": "10", "pid": "4", "dsp": "1-4-10" }, { "id": "9", "pid": "1", "dsp": "1-9" }, { "id": "2", "pid": "0", "dsp": "2" }, { "id": "8", "pid": "2", "dsp": "2-8" }, { "id": "3", "pid": "0", "dsp": "3" }, { "id": "7", "pid": "3", "dsp": "3-7" }]
总结
以上就是关于PHP使用递归来按层级查找数据的介绍,上述示例具有一定的借鉴价值,有需要的朋友可以参考学习,希望对大家学习PHP有帮助,想要了解更多可以继续浏览本公司其他相关的文章。
想要挑选好的海外云服务器,就得挑选好的海外云服务器提供商。YINGSOO是一家专注海外主机业务的IDC服务商,10年经验,专业团队,品质有保障,服务更贴心!服务热线:400-630-3752
热搜词条:【服务器什么情况会导致带宽满了】【网络游戏的服务器到底张什么样的】【挖矿收款是矿池】【免费永久云服务器推荐】【私有云 物理机配置】【奇亚提币教程】【能追踪到美国服务器吗】【工业物联网网络服务器】【香港服务器延迟】【物理服务器做公司公用文件】【天玑920 和麒麟820】【奇亚chia币能升值吗】【Chia主网故障问题及影响公告】【公网分布式存储】【如何搭建国外服务器】【独享服务器】【外国矿场】【高防 多少G 怎么算的】【ssr科学云加速】【租用IP】【虚拟主机开通后】【个人服务器有哪些用途】【香港vps 封ip】【安全认证服务器 公司】【服务器在过国外的网站有谁监管】【mass算力激活】【手机行业现在还好干吗】【chia 运行日志】【租用服务器】【chia8444被占用】
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。