php利用引用实现树形数组
今天气哥发了一个无限极分类,没有用递归的例子。看了一下不错。。
理解:1、创建$tree用于存储顶级分类即$pid=0的分类引用。
2、创建$list数组的引用数组$refer存储$list引用
3、循环$list数组:这里做了两件事,一个是过滤出顶级分类引用赋值给$tree,二是,判断出非顶级分类,然后根据该分类的父级id在$refer中找到该分类的父级分类,把当前分类的引用赋值给当前父级分类的子数组。
4、因为传递过程都是用引用传递所以当循环结束所有分类都会被处理,返回的$tree就已经包含所有分类的树形数组了。
追加一个关于引用比较有意思的问题:
解释:其实就是第一次循环的时候$value的引用已经指向了$arr的最后一位。循环默认没次循环指针加1。这时候如果用unset释放变量就安全了。第二次循环$value没有复位,所以才会有如此结果。
php利用引用实现树形数组相关推荐
- php b+树,PHP利用b+树概念实现树形数组
算法特点:利用b+树概念,只用一次循环就可生成树形数组 //测试数据 $ar = array( array(id=>1,pid=>0), array(id=>2,pid=>0) ...
- 汇编中的length(返回利用dup定义的数组中的元素个数,即重复操作符dup前的count值)
LENGTH是属于析值操作符之一,也称为数值回送操作符,原因是这些操作符把一些特征或存储器地址的一部分作为数据返回.length的用法:length 变量名 .作用是返回利用dup定义的数组中的元素个 ...
- 函数的相关操作——利用函数翻转任意数组||利用函数冒泡排序||利用函数判断闰年
利用函数翻转任意数组 利用函数冒泡排序 利用函数判断闰年 用户输入年份,输出当前年份2月份的天数
- python树形_Python处理树形数组
用 Python 构建树形数组,并且写出 GetSum, update, FindMax 三个函数,分别对应的是:查 找从 1 到 n 的 sum , 对于某一个元素增加 num ,需要对数组进行维护 ...
- java的常用引用类、数组、String类
java的常用引用类.数组.String类 1. 常用引用类 1.1 Scanner 一个简单的文本扫描器类. 使用: //创建扫描器对象 Scanner sc = new Scanner(Syste ...
- 易语言数据类型与c 对照,易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置...
易语言利用自定义数据类型和数组. 制作键对值操作类/内存配置.版本 2 .支持库 spec .子程序 _临时子程序 .局部变量 test, classKeyValue .局部变量 局_取值方法2, ...
- Java数组基础笔记(引用、字符串数组)
文章目录 数组的新建 数组的引用概念 字符串数组引用的奇妙 数组的新建 数组的新建有多种方式,需要注意返回值类型是int[],新建方式如下几种: int[] ns: ns = new int[] {1 ...
- php 输出数组第一个元素,怎么在php中利用reset() 函数输出数组中的第一个元素
怎么在php中利用reset() 函数输出数组中的第一个元素 发布时间:2021-01-16 09:37:11 来源:亿速云 阅读:66 作者:Leah 本篇文章给大家分享的是有关怎么在php中利用r ...
- 利用Apply的参数数组化来提高代码的优雅性,及高效性
利用Apply的参数数组化来提高代码的优雅性,及高效性 Function.apply()在提升程序性能方面的技巧 我们先从Math.max()函数说起,Math.max后面可以接任意个参数,最后返回所 ...
最新文章
- SAP HUM 因为存在Open TO 单据使得HU不能创建盘点凭证
- Django 无法加载静态文件(js,css,image)解决办法
- [转载]Outlook 2016 显示正在启动... 无法进入Outlook的解决方案
- boost::hana::negate用法的测试程序
- 《5G新体制天线技术》
- python的一些问题解决方法
- python 排列组合速度_Python实现的简单排列组合算法示例
- maven项目添加新dependency jar后本地可正常运行,但打包后加载不上
- Atitit nodejs5 nodejs6 nodejs 7.2.1 新特性attialx总结
- libtorrent java_关于libtorrent库的安装
- 国家对五险一金的交纳说明(已更新)
- ae合成设置快捷键_【实用向】AE必备小技巧
- pdf批量转换为图片
- qos 流控功能_QOS流量控制管理详解!
- tags与categories
- #4508. Triples I
- 计算机无法加载远程访问连接管理器服务,win7宽带连接提示无法加载远程访问连接管理器服务错误711怎么办...
- Java编程:颜色色带图片的生成
- 【Android】Android入门
- 高德地图根绝经纬度画线跑步软件
热门文章
- linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx
- scrum回顾_[PM]敏捷开发之Scrum总结
- mysql html 转义_HTML/Mysql/XML 转义字符,备查
- [Spring-cloud-eureka]使用 gradle, spring boot,Spring cloud Eureka 搭建服务消费者
- loadrunner-3-1创建测试场景
- QCon速递:Xen漏洞热补丁修复、异地双活、ODPS新功能与金融互联网
- 基於tiny4412的Linux內核移植--- 中斷和GPIO學習(2)
- 别傻了,人家离职你也离
- python版trace命令显示归属地
- 关于SWT中的Combo类和List类