脚本宝典收集整理的这篇文章主要介绍了在循环中使PHP数组中的层次结构,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
Array ( [0] => Array ( [id] => 1 [name] => name1 [parent] => 0 [children] => ) [1] => Array ( [id] => 2 [name] => name2 [parent] => 1 [children] => ) )
我需要得到这样的东西
Array ( [0] => Array ( [id] => 1 [name] => name1 [parent] => 0 [children] => Array ( [id] => 2 [name] => name2 [parent] => 1 [children] => ) ) )
问题在于它适用于任何级别的层次结构.这样它就可以在循环中工作.请帮忙!
例如.:
>使用邻接模型 – 请参阅我对dnagirl答案的评论
>将所有数据加载到PHP然后使用递归算法创建嵌套树(这将是相当慢的,并将从一些缓存中受益)
>编写递归存储过程,该过程返回按深度优先树步行排序的结果集
将示例2更接近代码….类似……
function build_tree(&$unsorted,$start_node) { $out=array(); foreach($unsorted as $key=>$node) { if ($node['parent']==$start_node) { $node['children']=build_tree($unsorted,$key); unset($unsorted[$key]); $out[]=$node; } } return $out; } $threaded_tree=build_tree($list_of_nodes,0); // assumes that the root is the First element
以上是脚本宝典为你收集整理的在循环中使PHP数组中的层次结构全部内容,希望文章能够帮你解决在循环中使PHP数组中的层次结构所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。