php+无限级分类+json,PHP无限极分类巧用引用生成树
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入 首先看代码实现 function generateTree($items){ $tree = array(); foreach($items as $item){ if(isset($items[$item['pid']])){ $items[$item['pid']]['son'][] = $items[$item['id']];
欢迎进入Linux社区论坛,与200万技术人员互动交流 >>进入
首先看代码实现
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);
不明白为什么他还要递归取出,如果把generateTree()的返回值 输出为json给前端不好吗?
本文原创发布php中文网,转载请注明出处,感谢您的尊重!
php+无限级分类+json,PHP无限极分类巧用引用生成树相关推荐
- php无极限分类讲解,php无限极分类入门教程
这篇文章主要介绍了PHP无限极分类函数的实现方法,结合实例形式详细分析了php实现无限极分类的具体思路.实现代码与相关注意事项,需要的朋友可以参考下本文实例讲述了PHP无限极分类函数的实现方法.分享给 ...
- php代码实现无限极分类,PHP实现无限极分类_php
利用两个for循环实现无限级分类 表: 字段名 字段类型 备注 默认值 id int 主键 auto-increment name varchar 分类名称 pid int 父类id 0 顶级分类的 ...
- php无限极分类思路,php无限极分类的方法
本篇文章主要介绍php无限极分类的方法,感兴趣的朋友参考下,希望对大家有所帮助. 代码如下:<?php $conn = mysql_connect("localhost",& ...
- php实现无限极分类算法,PHP无限极分类函数的实现方法实例详解
这篇文章主要介绍了PHP无限极分类函数的实现方法,结合实例形式详细分析了php实现无限极分类的具体思路.实现代码与相关注意事项,需要的朋友可以参考下 本文实例讲述了PHP无限极分类函数的实现方法.分享 ...
- php 无限极分类树,php无限极分类 类 tree.class.php
/** * 通用的树型类,可以生成任何树型结构 */ class tree { /** * 生成树型结构所需要的2维数组 * @var array */ public $arr = array(); ...
- 简述php无限极分类,php之无限极分类
css权威指南-基本视觉格式化(水平与垂直) 1.基本概念 (1)正常流:是指西方语言文本从左向右,从上向下显示.如果要让一个元素不在正常流中国,唯一的办法 ...
- 无限级分类 php_php无限极分类的方法是什么
今天给大家带来的是php的无限极分类技术,本人把无限极分类划分为两种.具体方法如下: 首先我把数据库表给大家看看,数据库是tasks,数据库表也是tasks. 相关推荐:<PHP教程> 第 ...
- php无限级分类是什么意思,php无限极分类是什么意思
php无限极分类简单点说就是一个类可以分成多个子类,然后一个子类又可以分另外多个子类这样无限分下去,就好象windows可以新建一个文件夹,然后在这个文件夹里又可以建一些个文件夹,在文件夹底下还可以建 ...
- 无限级分类 php_php无限极分类实现方法分析
本文实例讲述了php无限极分类实现方法.分享给大家供大家参考,具体如下: 今天给大家带来的是php的无限极分类技术,本人把无限极分类划分为两种. 首先我把数据库表给大家看看,数据库是tasks,数据库 ...
最新文章
- 微信小程序_Bug解决_setData失效
- linux kill命令使用
- Oracle学习笔记:备份、还原、恢复的一点理解
- ant external lib
- PHP---错误处理(error)
- Spring_02_AOP初级总结
- 【转】WOPI host消息体结构
- 当年赫赫有名的“四大工学院”,如今都发展得怎样?依然牛气冲天
- Android图片压缩,不失真,上线项目
- 关于Spring Cloud微服务框架的一些概念
- 5.2.7 原子操作的释放函数
- 输出某年某月某日的c语言程序,输入某年某月某日,输出这是今年的第几天,C语言问题...
- 服务器装系统bios设置方法,重装系统时BIOS的设置方法
- Linux之NTFS、FAT32、exFAT 各种格式硬盘挂载整理
- 离别,总免不了有些悲伤
- html打印页标题行,打印标题行的设置方法
- dom4j 学习 -- 封装dom4j工具类+如何使用dom4j解析
- 洛谷 P2071 座位安排 seat.cpp/c/pas
- 基于量桨搭建AI量子通信模拟平台,优化量子通信协议
- 怎么像“一朵云”一样管理“多个云”?