php无限极 left right,PHP超牛逼无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了。
这是我在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();
}
上面这种无限极分类数据树形结构化的方法值得借鉴。但是我觉得这段代码实际用途并不明显啊,你想取出格式化的树形数据还是要递归啊:
复制代码 代码如下:
/**
* 如何取数据格式化的树形数据
*/
$tree = generateTree($items);
function getTreeData($tree){
foreach($tree as $t){
echo $t['name'].'
';
if(isset($t['son'])){
getTreeData($t['son']);
}
}
}
getTreeData($tree);
php无限极 left right,PHP超牛逼无限极分类生成树方法相关推荐
- php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_php技巧
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. 代码如下: fun ...
- php 生成树,PHP超牛逼无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function ...
- 几款超牛逼的终端命令行工具!好用到爆
点击关注公众号,回复"1024"获取2TB学习资源! 终端是程序员的必备工具之一,本文将介绍许多牛逼且实用的开源工具,本文仅对工具做基本介绍,不提供安装方法,因为这些工具的安装方法 ...
- PHP无限极分类生成树方法,无限分级
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function ...
- 还在付费使用 XShell?我选择这款超牛逼的 SSH 客户端,完全免费!
点击关注公众号,回复"1024"获取2TB学习资源! 分享过 FinallShell 这款 SSH 客户端,也是我目前常用的 SSH 客户端工具,FinalShell 使用起来方便 ...
- 挺带劲!这款开源数据库迁移工具超牛逼
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 迁移数据库可以说是日常工作中的家常便饭,不过,如果一不小心把数据库搞炸了,那就麻烦大了(搞不好就得背锅了 ...
- 超牛逼!这款开源性能监控系统真强大~
点击关注公众号,回复"1024"获取2TB学习资源! 当网站上线后,流量增加或短暂功能故障,都会造成使用者体验相当不好,而这时该怎么快速找到性能的瓶颈呢?通常 CPU 达到 100 ...
- 几款超牛逼的 SSH 客户端工具!好用到爆
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 一.Windows 想来占有量最大的操作系统,得非莫属了吧,相信 Windows 系统肯定是陪伴了很多小 ...
- 再见 Teamviewer!这款国产轻量级远程桌面软件超牛逼
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! 对很多 Mac 用户来说,想用远程控制请教下大佬,太难了. 在 Windows 上一个 QQ 就能搞定的 ...
- 超牛逼!100 个开箱即用的 Shell 脚本,拿好了~
点击下方公众号「关注」和「星标」 回复"1024"获取独家整理的学习资料! shell脚本是帮助程序员和系统管理员完成费时费力的枯燥工作的利器,是与计算机交互并管理文件和系统操作的 ...
最新文章
- jquery.each读取json数据
- Oracle-Listener log解读
- 5、Power Query-抓取网页数据做漂亮的图表
- 从冲咖啡看统计过程控制
- 服务器之Apache和Tomcat和Nginx的理解和对比
- 结对项目开发-电梯调度
- mysql 命令备份恢复,binlog日志, percona工具备份恢复
- C++Debug Assertion Failed!到底出错在哪里?
- 华硕ASUS acrh17 PandoraBox固件
- 易语言文本加密c,易语言数据加密方法步骤
- dw设置html背景,Dreamweaver默认浏览器怎么设置
- html让video元素居中,CSS实现元素居中的五种方法
- TypeError: decoding str is not supported
- python qq群文件_python 获取qq群成员列表数据
- .jar.LASTUPDATED问题解决
- MFC控件 --- 进度条【案例】
- 运行自己的 Daemoet - 每天5分钟玩转 Docker 容器技术(131nS)
- c语言编程交互式计算器,C语言程序设计交互式函数计算器设计报告.docx
- UDS服务基础篇之22
- 查找两个word文件的不同
热门文章
- [数据恢复答疑]删除了WINDOWS桌面上的文件,该如何恢复数据
- MySQL 创建主外键
- ansible安装包和管理 playbook相关
- python工具包:Python Swiftclient
- 这是阿里人手机里,这一年最舍不得删的照片
- MySQL视图索引与存储过程精析
- [Erlang 0026] 目前最优的Erlang IDE
- CI框架 CodeIgniter 伪静态 htaccess设置和Nginx伪静态方法2
- mysqli 操作数据库(转)
- 绝地求生服务器维护6.28,绝地求生6月28号更新完怎么进不去 绝地求生更新维护到几点6.28...