无限极分类的解决思路很简单,关键是有两点:

  • 递归算法
  • 定义一个静态变量来保存数组

代码部分

<?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实现无限极分类相关推荐

  1. php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_php技巧

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. 代码如下: fun ...

  2. 无限极分类原理与实现

    前言 无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类. 首先来说说什么是无限极分类.按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始, ...

  3. php无极分类非递归_无限极分类算法,对你一定有帮助

    无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归. 1.循环迭代实现 $arr = [1=>['id'= ...

  4. php不使用递归实现无限极分类

    无限极分类常用的是递归,但是比较不好理解,其实可以用数据库path,pid两个字段的设计来实现无限分类的功能 1.数据库设计 通过上图可以看出pid就是该栏目的父id,而path = 父path+pi ...

  5. 无限极分类不知pid_PHP实现无限极分类

    导读:说到无限极分类,这个在程序中是常见的一个功能点了.实现的方式也有很多种,今天着重分享一下涉及到数据库的无线分类,可以使用递归处理,也可以使用循环查询数据库处理.但是我们考虑到数据库的性能问题,都 ...

  6. php 递归实现无限极分类和排序_Laravel框架实现无限极分类

    php中文网最新课程 每日17点准时技术干货分享 最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享 ...

  7. 前台特效(9)无限极分类折叠菜单

    在程序中经常会用到无限极分类菜单,经常性的会被绕的头昏脑胀,整理了一个简洁的方式,希望对你有帮助,轻喷!! <!DOCTYPE html><!-- by longdd 2013.4. ...

  8. PHP递归实现无限极分类

    PHP递归实现无限极分类 摘要 今天在编码的时候要用到二级的栏目分类,所以顺便就把无限极分类给整理了一下,采用的是递归方法 //实现无限级分类public function getTree(){$ca ...

  9. TreeView无限极分类绑定(从数据库读取数据源)

    TreeView这个控件其实我本来不怎么会用到,今天有一个项目要用到,而且是无限极的分类数据绑定,于是就根据自己以前写过的代码别写出了这个无限极分类的例子,呵呵希望能够对大家有所帮助,本人尽量把注释写 ...

  10. php根据分类生成网址,PHP实现无限极分类生成分类树的方法

    本文实例讲述了PHP实现无限极分类生成分类树的方法.分享给大家供大家参考,具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限级分类,取出 ...

最新文章

  1. 幼儿园带括号算式口诀_记忆口诀丨有顺口溜加成的知识点瞬间好记一万倍!
  2. 安卓基础之读取联系人的姓名和电话
  3. Java内存模型_基础
  4. 8代cpu能跑linux,Intel公布6/7/8代桌面CPU打漏洞补丁性能结果:影响很小
  5. MapReduce案例(数据中获取最大值TopN)
  6. 非递归中序,后序,先序遍历二叉树完整代码(用链式栈实现)
  7. android触摸滑动监听,Android 滑动监听的实例详解
  8. 【毕设】知网文献检索列表中的 href 解析为可访问的 URL
  9. vnr光学识别怎么打开_【VNR翻译器下载】Visual Novel Reader(VNR翻译器) v2.0 整合版-开心电玩...
  10. java中double..compare_为什么Java的Double.compare(double,double)实现了它的样子?
  11. 参考平面及其高度_遥感影像中建筑物平面及高度信息提取方法
  12. 什么是PSD(功率谱密度)
  13. 牛散村 : 强行平仓的后果是什么?
  14. 干货!任务型对话中语言理解的鲁棒性测试 |清华刘劼西
  15. 电脑显示未连接一个服务器怎么处理,Win7开机提示“未能连接一个windows服务”的解决方法...
  16. 的路由放在本地_大佬私藏玩法,NAS还能当路由
  17. windows安装imgaug ERROR: Command errored out with exit status 1: ERROR: Command errored out with exit
  18. dBSPL、dBu、dBV、dBm、dBVU、dBFS等等和分贝有关的名词解析
  19. PPT封面制作方法一
  20. 数据结构与算法-三对角矩阵的压缩公式推导

热门文章

  1. 中文新闻分类 数据集_最新开源LiDAR数据集LSOOD:四种常见的室外物体分类
  2. 【转载】Murmurhash介绍与实现
  3. 老板三八妇女节的祝词
  4. 磁带和黑胶模拟器插件-Initial Audio Analog Pro LoFi v1.0.0 WiN-MAC
  5. 网页中插入音乐连续播放
  6. java开发中异常处理的几种手段
  7. 再见,巴黎NFT日,精彩片段
  8. 2023基于微信小程序的游戏账号在线交易买卖平台(SSM+mysql)-JAVA.VUE(论文+开题报告+运行)
  9. 实验六:派生类与继承
  10. 复现SCI论文图表:棒棒糖图|渐变|legeng设置