你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了。
这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了。
function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items[$item['pid']])){ $items[$item['pid']]['son'][] = &$items[$item['id']]; }else{ $tree[] = &$items[$item['id']]; } } return $tree; } $items = array( 1 => array('id' => 1, 'pid' => 0, 'name' => '安徽省'), 2 => array('id' => 2, 'pid' => 0, 'name' => '浙江省'), 3 => array('id' => 3, 'pid' => 1, 'name' => '合肥市'), 4 => array('id' => 4, 'pid' => 3, 'name' => '长丰县'), 5 => array('id' => 5, 'pid' => 1, 'name' => '安庆市'), ); print_r(generateTree($items));
Array ( [0] => Array ( [id] => 1 [pid] => 0 [name] => 安徽省 [son] => Array ( [0] => Array ( [id] => 3 [pid] => 1 [name] => 合肥市 [son] => Array ( [0] => Array ( [id] => 4 [pid] => 3 [name] => 长丰县 ) ) ) [1] => Array ( [id] => 5 [pid] => 1 [name] => 安庆市 ) ) ) [1] => Array ( [id] => 2 [pid] => 0 [name] => 浙江省 ) )
上面生成树方法还可以精简到5行:
function generateTree($items){ foreach($items as $item) $items[$item['pid']]['son'][$item['id']] = &$items[$item['id']]; return isset($items[0]['son']) ? $items[0]['son'] : array(); }
/** * 如何取数据格式化的树形数据 * @blog<http://www.phpddt.com> */ $tree = generateTree($items); function getTreeData($tree){ foreach($tree as $t){ echo $t['name'].'<br>'; if(isset($t['son'])){ getTreeData($t['son']); } } } getTreeData($tree);
相关推荐
在“无限级分类(数组方法)”这个主题中,我们将主要关注如何通过数组来表示这种树形结构,以及如何遍历和操作这个数组。PHP的数组非常适合处理这类问题,因为它们支持嵌套,并且提供了丰富的操作函数。 1. **构建...
在IT行业中,无限级分类是一种常见的数据组织方式,特别是在网站内容管理、文章分类或导航菜单设计等领域。PHP和jQuery的结合可以有效地实现这种功能。在这个项目中,我们看到的文件包括`jquery-1.5.2.js`(一个古老...
本篇文章将深入探讨几种实现PHP无限级分类的方法,并提供一个带有数据库的示例。 一、递归函数 递归是实现无限级分类的一种基础方法。通过递归调用自身,我们可以遍历整个分类树。通常,递归函数会接收当前分类的...
在IT领域,数据库管理和网页开发是两个至关重要的部分。...5. 实现相关的PHP脚本,包括分类操作和分类树的生成。 掌握这些知识和技巧,可以帮助开发者在实际项目中构建出灵活且高效的无限级分类系统。
在这个场景下,PHP 被用来处理数据库查询,构建无限级分类的树形结构,并将结果转换为JSON格式,方便Ajax调用。 3. **无限级分类**:在数据库设计中,无限级分类通常通过自引用的方式实现,即一个分类可以有多个子...
这个“小贤PHP无限级分类程序”提供了一个解决方案,让我们来深入探讨这个话题。 无限级分类,顾名思义,就是在数据库或文件系统中,允许类别有任意深度的嵌套。在网站结构中,例如,我们可能有一个主菜单,它下面...
**PHP无限级分类** PHP作为服务器端脚本语言,是实现无限级分类的核心工具。无限级分类通常通过递归或者自关联的方式实现。在数据库设计上,一般会有一个`categories`表,包含`id`(主键)、`name`(类别名称)、`...
新闻无限级分类通常涉及到树形数据结构的实现,如多级菜单或分类目录。在数据库设计中,这可以通过自引用的方式实现,即新闻分类表中有一个字段指向自身,表示父类别与子类别的关系。常见的实现方式有Adjacency List...
总之,PHP无限级树型分类是一项实用的技术,它结合了递归算法和数据库操作,帮助开发者构建灵活且易于管理的分类系统。通过理解和掌握这一技术,我们可以提高在复杂数据结构处理上的能力,从而更好地服务于各种Web...
在PHP编程中,无限级分类(Unlimited Level Category)是一个常见的需求,特别是在处理如产品分类、用户组、文章目录等需要层级结构的数据时。`un-limit-tree` 是一个用于实现这种功能的PHP类库,它可以帮助开发者...
在PHP中,无限级分类是一种常见...总结,这个PHP类提供了一种简单有效的方法来处理无限级分类数据,通过递归和循环来构建和输出树状结构。它对于处理有层级关系的数据非常实用,且代码简洁易懂,适合在各种项目中复用。
在PHP编程中,无限极分类...在实际应用中,这种递归无限级分类的方法不仅可以用于网站后台管理,还可以在前端展示层次结构,如导航菜单的生成。正确理解和使用递归算法,可以大大提高处理复杂数据结构的效率和便捷性。
本文将深入探讨如何使用PHP实现无限级分类,特别关注递归方法。 首先,我们需要在数据库中建立一个用于存储分类信息的表。这个表通常包含以下字段: 1. ID:主键,用于唯一标识每个分类。 2. PARENTID:父分类ID,...
当然,这只是实现PHP无限级分类的一种方法,实际项目中可能需要根据具体需求调整和优化。在使用递归函数时,还需要注意递归深度的控制,避免出现栈溢出的问题。此外,在某些情况下,使用数据库的LIKE查询来获取分类...
- **后端**:可能使用PHP、Python、Java等服务器端语言实现,通过SQL查询获取分类数据并构建树形结构。 - **前端**:HTML、CSS和JavaScript(可能使用jQuery或其他库)用于展示和交互。JavaScript可能包含递归函数...
总结来说,PHP无限级分类的实现需要考虑数据结构的设计、数据库查询的效率、递归与非递归算法的选择等多个方面。根据不同的应用场景和数据规模,开发者可以选择适合的存储模型和算法来优化性能和用户体验。在实践中...
以上就是PHP实现无限级分类生成分类树的基本原理和方法。这种方法的核心在于利用数组引用快速定位和修改数据,以及递归地构建每个分类与其父分类、子分类之间的关系。通过这种方式,我们可以灵活地构建出满足不同...
本篇内容给出了一个无限级分类实现的基本方法,同时也提供了相关知识点的参考资料,供开发者进一步学习和探索。 综上所述,使用PHP实现无限级分类功能涉及到数据库设计、递归函数编写、查询优化等多方面的知识。...
DropDownList无限级分类是一种在网页或应用程序中实现的交互元素,它允许用户从一系列下拉选项中选择一个值。在许多场景中,这些选项可能需要按照层级结构组织,例如国家/地区、部门、职位等,形成一个无限级别的树...