PHP实现无限极分类
无限极分类的解决思路很简单,关键是有两点:
- 递归算法
- 定义一个静态变量来保存数组
代码部分
<?php$array = [['id' => 1, 'pid' => 0, 'name' => '广东省'],['id' => 2, 'pid' => 0, 'name' => '广西省'],['id' => 3, 'pid' => 1, 'name' => '广州市'],['id' => 4, 'pid' => 1, 'name' => '茂名市'],['id' => 5, 'pid' => 1, 'name' => '清远市'],['id' => 6, 'pid' => 4, 'name' => '高州'],['id' => 7, 'pid' => 4, 'name' => '化州'],['id' => 8, 'pid' => 4, 'name' => '信宜'],['id' => 9, 'pid' => 2, 'name' => '南宁市'],
];/*** 递归实现无限极分类* @param $array 分类数据* @param $pid 父级id* @param $level 分类级别,用来显示格式用的* @return $list 整理好分类的数组*/function getTree($array, $pid = 0, $level = 0)
{//声明静态数组,避免递归调用时,多次声明导致数组覆盖static $list = [];foreach ($array as $key => $value) {if ($value['pid'] == $pid) {$value['level'] = $level;$list[] = $value;unset($array[$key]);getTree($array, $value['id'], $level + 1);}}return $list;
}/** 获得递归完的数据,遍历生成分类*/
$array = getTree($array);foreach ($array as $value) {echo str_repeat('--', $value['level']), $value['name'].'<br />';
}
复制代码
实现的效果如下
转载于:https://juejin.im/post/5c03417bf265da617006df12
PHP实现无限极分类相关推荐
- php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_php技巧
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. 代码如下: fun ...
- 无限极分类原理与实现
前言 无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类. 首先来说说什么是无限极分类.按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始, ...
- php无极分类非递归_无限极分类算法,对你一定有帮助
无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归. 1.循环迭代实现 $arr = [1=>['id'= ...
- php不使用递归实现无限极分类
无限极分类常用的是递归,但是比较不好理解,其实可以用数据库path,pid两个字段的设计来实现无限分类的功能 1.数据库设计 通过上图可以看出pid就是该栏目的父id,而path = 父path+pi ...
- 无限极分类不知pid_PHP实现无限极分类
导读:说到无限极分类,这个在程序中是常见的一个功能点了.实现的方式也有很多种,今天着重分享一下涉及到数据库的无线分类,可以使用递归处理,也可以使用循环查询数据库处理.但是我们考虑到数据库的性能问题,都 ...
- php 递归实现无限极分类和排序_Laravel框架实现无限极分类
php中文网最新课程 每日17点准时技术干货分享 最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享 ...
- 前台特效(9)无限极分类折叠菜单
在程序中经常会用到无限极分类菜单,经常性的会被绕的头昏脑胀,整理了一个简洁的方式,希望对你有帮助,轻喷!! <!DOCTYPE html><!-- by longdd 2013.4. ...
- PHP递归实现无限极分类
PHP递归实现无限极分类 摘要 今天在编码的时候要用到二级的栏目分类,所以顺便就把无限极分类给整理了一下,采用的是递归方法 //实现无限级分类public function getTree(){$ca ...
- TreeView无限极分类绑定(从数据库读取数据源)
TreeView这个控件其实我本来不怎么会用到,今天有一个项目要用到,而且是无限极的分类数据绑定,于是就根据自己以前写过的代码别写出了这个无限极分类的例子,呵呵希望能够对大家有所帮助,本人尽量把注释写 ...
- php根据分类生成网址,PHP实现无限极分类生成分类树的方法
本文实例讲述了PHP实现无限极分类生成分类树的方法.分享给大家供大家参考,具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出 ...
最新文章
- 幼儿园带括号算式口诀_记忆口诀丨有顺口溜加成的知识点瞬间好记一万倍!
- 安卓基础之读取联系人的姓名和电话
- Java内存模型_基础
- 8代cpu能跑linux,Intel公布6/7/8代桌面CPU打漏洞补丁性能结果:影响很小
- MapReduce案例(数据中获取最大值TopN)
- 非递归中序,后序,先序遍历二叉树完整代码(用链式栈实现)
- android触摸滑动监听,Android 滑动监听的实例详解
- 【毕设】知网文献检索列表中的 href 解析为可访问的 URL
- vnr光学识别怎么打开_【VNR翻译器下载】Visual Novel Reader(VNR翻译器) v2.0 整合版-开心电玩...
- java中double..compare_为什么Java的Double.compare(double,double)实现了它的样子?
- 参考平面及其高度_遥感影像中建筑物平面及高度信息提取方法
- 什么是PSD(功率谱密度)
- 牛散村 : 强行平仓的后果是什么?
- 干货!任务型对话中语言理解的鲁棒性测试
|清华刘劼西
- 电脑显示未连接一个服务器怎么处理,Win7开机提示“未能连接一个windows服务”的解决方法...
- 的路由放在本地_大佬私藏玩法,NAS还能当路由
- windows安装imgaug ERROR: Command errored out with exit status 1: ERROR: Command errored out with exit
- dBSPL、dBu、dBV、dBm、dBVU、dBFS等等和分贝有关的名词解析
- PPT封面制作方法一
- 数据结构与算法-三对角矩阵的压缩公式推导
热门文章
- 中文新闻分类 数据集_最新开源LiDAR数据集LSOOD:四种常见的室外物体分类
- 【转载】Murmurhash介绍与实现
- 老板三八妇女节的祝词
- 磁带和黑胶模拟器插件-Initial Audio Analog Pro LoFi v1.0.0 WiN-MAC
- 网页中插入音乐连续播放
- java开发中异常处理的几种手段
- 再见,巴黎NFT日,精彩片段
- 2023基于微信小程序的游戏账号在线交易买卖平台(SSM+mysql)-JAVA.VUE(论文+开题报告+运行)
- 实验六:派生类与继承
- 复现SCI论文图表:棒棒糖图|渐变|legeng设置