今天气哥发了一个无限极分类,没有用递归的例子。看了一下不错。。

理解:1、创建$tree用于存储顶级分类即$pid=0的分类引用。

2、创建$list数组的引用数组$refer存储$list引用

3、循环$list数组:这里做了两件事,一个是过滤出顶级分类引用赋值给$tree,二是,判断出非顶级分类,然后根据该分类的父级id在$refer中找到该分类的父级分类,把当前分类的引用赋值给当前父级分类的子数组。

4、因为传递过程都是用引用传递所以当循环结束所有分类都会被处理,返回的$tree就已经包含所有分类的树形数组了。

追加一个关于引用比较有意思的问题:

解释:其实就是第一次循环的时候$value的引用已经指向了$arr的最后一位。循环默认没次循环指针加1。这时候如果用unset释放变量就安全了。第二次循环$value没有复位,所以才会有如此结果。

php利用引用实现树形数组相关推荐

  1. php b+树,PHP利用b+树概念实现树形数组

    算法特点:利用b+树概念,只用一次循环就可生成树形数组 //测试数据 $ar = array( array(id=>1,pid=>0), array(id=>2,pid=>0) ...

  2. 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)

    LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...

  3. 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年

    利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数

  4. python树形_Python处理树形数组

    用 Python 构建树形数组,并且写出 GetSum, update, FindMax 三个函数,分别对应的是:查 找从 1 到 n 的 sum , 对于某一个元素增加 num ,需要对数组进行维护 ...

  5. java的常用引用类、数组、String类

    java的常用引用类.数组.String类 1. 常用引用类 1.1 Scanner 一个简单的文本扫描器类. 使用: //创建扫描器对象 Scanner sc = new Scanner(Syste ...

  6. 易语言数据类型与c 对照,易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置...

    易语言利用自定义数据类型和数组.  制作键对值操作类/内存配置.版本 2 .支持库 spec .子程序 _临时子程序 .局部变量 test, classKeyValue .局部变量 局_取值方法2,  ...

  7. Java数组基础笔记(引用、字符串数组)

    文章目录 数组的新建 数组的引用概念 字符串数组引用的奇妙 数组的新建 数组的新建有多种方式,需要注意返回值类型是int[],新建方式如下几种: int[] ns: ns = new int[] {1 ...

  8. php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素

    怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...

  9. 利用Apply的参数数组化来提高代码的优雅性,及高效性

    利用Apply的参数数组化来提高代码的优雅性,及高效性 Function.apply()在提升程序性能方面的技巧 我们先从Math.max()函数说起,Math.max后面可以接任意个参数,最后返回所 ...

最新文章

  1. SAP HUM 因为存在Open TO 单据使得HU不能创建盘点凭证
  2. Django 无法加载静态文件(js,css,image)解决办法
  3. [转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案
  4. boost::hana::negate用法的测试程序
  5. 《5G新体制天线技术》
  6. python的一些问题解决方法
  7. python 排列组合速度_Python实现的简单排列组合算法示例
  8. maven项目添加新dependency jar后本地可正常运行,但打包后加载不上
  9. Atitit nodejs5 nodejs6  nodejs 7.2.1  新特性attialx总结
  10. libtorrent java_关于libtorrent库的安装
  11. 国家对五险一金的交纳说明(已更新)
  12. ae合成设置快捷键_【实用向】AE必备小技巧
  13. pdf批量转换为图片
  14. qos 流控功能_QOS流量控制管理详解!
  15. tags与categories
  16. #4508. Triples I
  17. 计算机无法加载远程访问连接管理器服务,win7宽带连接提示无法加载远程访问连接管理器服务错误711怎么办...
  18. Java编程:颜色色带图片的生成
  19. 【Android】Android入门
  20. 高德地图根绝经纬度画线跑步软件

热门文章

  1. linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
  2. scrum回顾_[PM]敏捷开发之Scrum总结
  3. mysql html 转义_HTML/Mysql/XML 转义字符,备查
  4. [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务消费者
  5. loadrunner-3-1创建测试场景
  6. QCon速递:Xen漏洞热补丁修复、异地双活、ODPS新功能与金融互联网
  7. 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(2)
  8. 别傻了,人家离职你也离
  9. python版trace命令显示归属地
  10. 关于SWT中的Combo类和List类