[size=x-small]废话不多说:直接代码,把下面的代码访问以下在本地
<?php
$arr = array(
array('id' => '3', 'name' => "上海", 'parid' => 4,'lev'=>4),
array('id' => '4', 'name' => "上海1", 'parid' => 5,'lev'=>3),
array('id' => '5', 'name' => "上海2", 'parid' => 6,'lev'=>2),
array('id' => '6', 'name' => "上海3", 'parid' => 0,'lev'=>1),
array('id' => '13', 'name' => "北京", 'parid' => 14,'lev'=>4),
array('id' => '14', 'name' => "北京1", 'parid' => 15,'lev'=>3),
array('id' => '15', 'name' => "北京2", 'parid' => 16,'lev'=>2),
array('id' => '16', 'name' => "北京3", 'parid' => 0,'lev'=>1),
);
function tree($list,$pid=0,$level=0,$html='--'){
static $tree = array();
foreach($list as $v){
if($v['parid'] == $pid){
$v['lev'] = $level;
$v['html'] = str_repeat($html,$level);
$tree[] = $v;
tree($list,$v['id'],$level+1);
}
}
return $tree;
}
$data=tree($arr,$pid=0,$level=0,$html='--');
var_dump($data);
foreach($data as $v){
echo "<br>";
echo $v['html'].$v['name'];
}
?>
访问结果如下:
有些知识多说也说不明白,程序结果更令人信服,希望对你们有帮助[/size]
- 大小: 2.3 KB
分享到:
相关推荐
可以通过设置递归深度的限制,或使用迭代而非递归的方式来优化性能。 5. 在使用本文方法时,建议对传入的数组进行预处理,确保没有循环引用。否则,在极端情况下,递归函数可能会无限循环,导致程序崩溃。 以上...
【作品名称】:基于php非递归实现的高性能的处理数组的层级关系、包括生成无限极分类、树状结构 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期...
本压缩包中的"php无限极分类相关代码类.zip"提供了一个非递归的方式来处理这种分类,这通常比递归方法更高效,尤其是在分类层次较深时。 这个类库的核心在于通过“路径字段”来管理分类的关系。路径字段是一种常用...
无限极分类的核心思想是通过递归或非递归方法来处理。递归方法通常使用自身函数调用来遍历所有层级,而非递归方法则通过构建自关联的数组或者利用数据库的自连接查询来实现。下面将详细介绍这两种方法: 1. **递归...
总结来说,这个"php无限极分类相关代码类"提供了一种非递归的方法来处理无限级分类,通过路径字段优化了性能,同时提供了方便的接口来获取和操作分类。在实际开发中,这种代码类能够大大提高效率,减少对数据库的...
在PHP中,无限极分类是常见的数据组织方式,特别是在构建多级导航菜单或者树状结构时。传统的方法是使用递归函数,但这种方法在处理大量数据时效率较低,容易导致内存溢出。本文介绍了一种基于前序遍历树的非递归...
总结起来,这个实例展示了如何在PHP中不使用递归实现无限级分类,利用迭代和数组操作来构建层级结构。这种方法虽然在代码复杂度上可能较高,但在性能方面相对递归有更好的表现,尤其适合处理大规模的数据。然而,...
此外,不同编程语言和框架可能有不同的实现方式,但基本思路相似,即利用递归或非递归方法构建层级结构。本文提供了一个基于PHP的简单示例,但其他语言如Java、Python等也有类似的方法实现无限级分类。
为了解决这些问题,我们可以采用非递归的方式来实现无限级分类。这种方法在数据库设计中通常采用的是父子结构,也就是每个分类记录中都有一个指向其父分类的外键(fid),通过这个外键将多个分类记录连接起来形成一...
这种方法在逻辑上比较直观,但随着递归层级的加深,性能会迅速下降,特别是在非优化的数据库查询中。因此,在实际开发中,我们通常会结合缓存机制来优化递归查询的性能问题。 第二种方法则是通过构建一个数组,该...
总结来说,PHP实现无限级分类树形结构主要依赖于递归或非递归方法,通过构建节点间的父子关系来形成层级结构。理解这种数据结构对于处理需要展示层次关系的场景至关重要,例如网站导航、文件目录管理等。在实际项目...
5. **递归与非递归查询对比**: - 传统的无限分类通常使用递归查询,当分类层次深时效率低,因为每次查询都要遍历多层。 - 左右值无限分类通过一次查询就能获取整条路径,效率更高。 6. **异常处理**: - 代码中...
无限极分类栈的实现是一个典型的应用场景。通过栈来维护一个无限层次的分类结构,每次需要添加子分类时就在栈顶压入新节点,需要返回上级分类时就弹出栈顶元素。 #### 队列(Queue) **概述** 队列是一种先进先出...
- 无限极分类栈的实现: 可以利用栈的特点来实现无限级的分类管理,例如菜单结构或者文件目录结构。 #### 队列(Queue) **概述** - 队列是一种先进先出(FIFO)的数据结构,在PHP中同样可以使用数组来模拟队列的行为。...