你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了。
这是我在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);

转载请注明地址: http://www.phpddt.com/php/generateTree.html

PHP无限极分类生成树方法,无限分级相关推荐

  1. php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_php技巧

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. 代码如下: fun ...

  2. php 生成树,PHP超牛逼无限极分类生成树方法

    你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function ...

  3. java递归查询无限极分类_sqlserver实现树形结构递归查询(无限极分类)的方法

    SQL Server 2005开始,我们可以直接通过CTE来支持递归查询,CTE即公用表表达式 百度百科 公用表表达式(CTE),是一个在查询中定义的临时命名结果集将在from子句中使用它.每个CTE ...

  4. php无限极分类思路,php无限极分类的方法

    本篇文章主要介绍php无限极分类的方法,感兴趣的朋友参考下,希望对大家有所帮助. 代码如下:<?php $conn = mysql_connect("localhost",& ...

  5. 无限级分类 php_php无限极分类实现方法分析

    本文实例讲述了php无限极分类实现方法.分享给大家供大家参考,具体如下: 今天给大家带来的是php的无限极分类技术,本人把无限极分类划分为两种. 首先我把数据库表给大家看看,数据库是tasks,数据库 ...

  6. 无限级分类 php_php无限极分类的方法是什么

    今天给大家带来的是php的无限极分类技术,本人把无限极分类划分为两种.具体方法如下: 首先我把数据库表给大家看看,数据库是tasks,数据库表也是tasks. 相关推荐:<PHP教程> 第 ...

  7. php实现无限极分类算法,PHP无限极分类函数的实现方法实例详解

    这篇文章主要介绍了PHP无限极分类函数的实现方法,结合实例形式详细分析了php实现无限极分类的具体思路.实现代码与相关注意事项,需要的朋友可以参考下 本文实例讲述了PHP无限极分类函数的实现方法.分享 ...

  8. php代码实现无限极分类,PHP实现无限极分类_php

    利用两个for循环实现无限级分类 表: 字段名 字段类型 备注 默认值 id int 主键 auto-increment name varchar 分类名称 pid int 父类id 0 顶级分类的 ...

  9. php控制器无限极分类,thinkphp无限极分类实现方法

    本文讲解了thinkphp框架下实现无限级分类的方法,无限级分类一般应用在网站的分类菜单中,是很常用的数据结构和功能,在thinkphp中实现这种方法也是很容易的一件事,接下来我们就来学习下如何来使用 ...

最新文章

  1. 清华贵系的期末大作业:奋战三周,造台计算机!
  2. python list查找元素_使用python list 查找所有匹配元素的位置实例
  3. python产生fir滤波器_Python中使用FIR滤波器firwin后信号的相移
  4. POJ 3694 Network ★(边双连通分量+并查集缩点+LCA)
  5. Elasticsearch的用例:灵活的查询缓存
  6. tomcat 启用NIO
  7. 《通信原理》复习笔记10----第十章模拟信号的数字传输及相关例题(重点及难点)
  8. 三级网络技术无纸化模拟软件 (未来)教育
  9. CTF中各种好用的软件以及解密网址合集
  10. java 实心圆_java JFrame窗口中画一个实心圆并设置背景颜色,但背景不显示,级求解!!...
  11. ICTCLAS代码学习笔记之CSpan类
  12. shopify二次开发 产品详情页面的开发一(结构布局)
  13. c#中计算三角形面积公式_高中数学|向量公式之用平面向量求三角形面积
  14. UE战棋游戏的制作流程(使用GAS来制作技能系统)
  15. 让企业报表化繁为简,Smartbi实现报表统一管理
  16. 10套苹果CMS模板打包下载/苹果CMS视频影视网站源码下载
  17. JMeter Dummy sampler结果乱码 及 正则表达式提取器乱码的解决
  18. 交换机的端口工作模式一般可以分为三种:Access,Multi,Trunk。
  19. Flask前后端分离02
  20. iphone 快捷指令打开 行程码

热门文章

  1. 二分法求函数的零点(信息学奥赛一本通-T1241)
  2. 信息学奥赛一本通C++语言——1055:判断闰年
  3. 40 FI配置-财务会计-固定资产-组织结构-创建屏幕格式规则
  4. android xml对象,对象转成xml(并且序列化xml)在android中
  5. python中如何保存文件_如何在python中处理后保存文件?
  6. eclipselink mysql_Eclipselink更新现有表
  7. oracle crf路径,说说 ora.crf 那些事
  8. pandas python2.3版本_python-像以前的版本一样,将pandas 0.13.0“ pri...
  9. visual studio2019的安装以及使用
  10. Python实现RabbitMQ中6种消息模型(转)