php 无限分类 树形数据格式化代码

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php 无限分类 树形数据格式化代码脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

我们知道很多开软件的无限分类都是采用递归的算法,但是我们知道递归即浪费时间,又浪费空间(内存), 上次我也分享了个我自己原创的无限分类生成树的方法,一热心PHP高手网友给我提出了宝贵的建议,我测试了一下,这段代码的时间非常之短参考: http://www.oschina.net/code/snipPEt_98719_11296,我再次整理了一下,发现数据库查询出数据之后,我们就已经定好了键值,因而实践中,我们一般会在model中查询出格式化成主键值对应数据的形式,因而我们可以直接用这样的数据,就少了一层循环。代码也非常简洁。

原来代码

foreach ($ITems as $item) {
$tmpMap[$item[$id]] = $item;
}

foreach ($items as $item) {
if (isset($tmpMap[$item[$pid]])) {
$tmpMap[$item[$pid]][$son][] = &$tmpMap[$item[$id]];
} else {
$tree[] = &$tmpMap[$item[$id]];
}
}
unset($tmpMap);
return $tree;
}

$items1 = array(
array('id' => 1,'pid' => 0,'name' => '一级11' ),array('id' => 11,'name' => '一级12' ),array('id' => 2,'pid' => 1,'name' => '二级21' ),array('id' => 10,'pid' => 11,'name' => '二级22' ),array('id' => 3,'name' => '二级23' ),array('id' => 12,'name' => '二级24' ),array('id' => 9,'name' => '二级25' ),array('id' => 14,'name' => '二级26' ),array('id' => 4,'pid' => 9,'name' => '三级31' ),array('id' => 6,'name' => '三级32' ),array('id' => 7,'pid' => 4,'name' => '四级41' ),array('id' => 8,'name' => '四级42' ),array('id' => 5,'name' => '四级43' ),array('id' => 13,'name' => '四级44' ),array('id' => 15,'pid' => 8,'name' => '五级51' ),array('id' => 16,'name' => '五级52' ),array('id' => 17,'name' => '五级53' ),array('id' => 18,'pid' => 16,'name' => '六级64' ),);
var_dump(genTree($items1));

脚本宝典总结

以上是脚本宝典为你收集整理的php 无限分类 树形数据格式化代码全部内容,希望文章能够帮你解决php 无限分类 树形数据格式化代码所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。