PHP中怎么引用生成树结构
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,PHP中怎么引用生成树结构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。PHP中的引用就是两个变量指向了同一个地方,只要
千家信息网最后更新 2025年12月02日PHP中怎么引用生成树结构
PHP中怎么引用生成树结构,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
PHP中的引用就是两个变量指向了同一个地方,只要在变量前面增加了&符号,它就变成了一个引用
$a='aaa';$b=&$a;$c=&$b;xdebug_debug_zval('a','b','c');输出结果是:
a: (refcount=3, is_ref=1)='aaa'b: (refcount=3, is_ref=1)='aaa'c: (refcount=3, is_ref=1)='aaa'
"aaa"有了三个引用 , 并且是is_ref是引用类型,那也就意味着不管是我修改$b ,还是修改$c , "aaa"这个都会被改变
可以根据上面这个原理来把一个数据库存储的带pid的逐行数据,变成一个多层级的树状结构
$data=array( array("id"=>2,"pid"=>1), array("id"=>3,"pid"=>1), array("id"=>4,"pid"=>2), array("id"=>5,"pid"=>2), array("id"=>6,"pid"=>3), array("id"=>7,"pid"=>3), array("id"=>1,"pid"=>0),);$refer=array();//存储主键与数组单元的引用关系//遍历foreach($data as $k=>$v){ $refer[$v['id']]=&$data[$k];//为每个数组成员建立对应关系}//遍历2foreach($data as $k=>$v){ $parent=&$refer[$v['pid']];//获取父分类的引用 $parent['child'][]=&$data[$k];//在父分类的children中再添加一个引用成员}print_r($data);利用了一个$refer数组,时间复杂度是O(n) , 只需要单层循环,直接通过引用修改$data原数据,生成一个树状结构
Array( [0] => Array ( [id] => 2 [pid] => 1 [child] => Array ( [0] => Array ( [id] => 4 [pid] => 2 ) [1] => Array ( [id] => 5 [pid] => 2 ) ) ) [1] => Array ( [id] => 3 [pid] => 1 [child] => Array ( [0] => Array ( [id] => 6 [pid] => 3 ) [1] => Array ( [id] => 7 [pid] => 3 ) ) ) [2] => Array ( [id] => 4 [pid] => 2 ) [3] => Array ( [id] => 5 [pid] => 2 ) [4] => Array ( [id] => 6 [pid] => 3 ) [5] => Array ( [id] => 7 [pid] => 3 ) [6] => Array ( [id] => 1 [pid] => 0 [child] => Array ( [0] => Array ( [id] => 2 [pid] => 1 [child] => Array ( [0] => Array ( [id] => 4 [pid] => 2 ) [1] => Array ( [id] => 5 [pid] => 2 ) ) ) [1] => Array ( [id] => 3 [pid] => 1 [child] => Array ( [0] => Array ( [id] => 6 [pid] => 3 ) [1] => Array ( [id] => 7 [pid] => 3 ) ) ) ) ))
$a='aaa';$b=&$a;$c=&$b;xdebug_debug_zval('a','b','c');看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。
结构
数据
生成
变量
数组
分类
存储
帮助
复杂
清楚
三个
两个
内容
单元
单层
原理
地方
复杂度
多层
对此
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
数据库关系包括哪些元素
DNF数据库技术学院
高茜网络安全
qq炫舞唱歌断开服务器
csmar数据库请求异常
全军未在数据库的职工
联想商用服务器
刀箱服务器cmm管理口重置
通过kvm往服务器添加文件
易通网络安全科技馆
苏州秦海网络技术有限公司
二战英雄怎么换服务器
数据库怎么判断数据
查询数据库数据
四川工控软件开发服务费
开票为什么总是连接服务器失败
软件开发的专业语言分哪些
创建数据库实验结论及心得
八戒云互联网科技有限公司
stitp项目软件开发类
软件开发工时费多少
什么服务器玩游戏可以获得金币
远程管理服务器被锁
ftp服务器客户端传输文件
戴尔服务器管理端密码
公司网络安全设计论文
nvr监控集中存储管理服务器
2020成都软件开发大赛
iapp 数据库助手代码
网络安全在我身边漫画