php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_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中文网
php实现无限分类超牛逼,PHP超牛逼无限极分类生成树方法_php技巧相关推荐
- php 生成树,PHP超牛逼无限极分类生成树方法
你还在用浪费时间又浪费内存的递归遍历无限极分类吗,看了该篇文章,我觉得你应该换换了. 这是我在OSChina上看到的一段非常精简的PHP无限极分类生成树方法,巧在引用,整理分享了. function ...
- 夺命雷公狗ThinkPHP项目之----商城9商品后台无限极分类
无限极分类,几乎在每个网站上都会用到的,因此而重要. 先来对数据表进行分析 parent_id:表示当前分类的父id,他是实现无限级分类的关键 无限级分类,主要从两个方面进行考虑的. 1.数据库的设计 ...
- 无限极分类原理与实现
前言 无限极分类是我很久前学到知识,今天在做一个项目时,发现对其概念有点模糊,所以今天就来说说无限极分类. 首先来说说什么是无限极分类.按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始, ...
- php无极分类非递归_无限极分类算法,对你一定有帮助
无限级分类是开发中常见的情况,也经常会在面试,主考官问到,笔试中遇到,因此本文对常见的无限极分类算法进行总结归纳,其实大多数就是迭代与递归. 1.循环迭代实现 $arr = [1=>['id'= ...
- php不使用递归实现无限极分类
无限极分类常用的是递归,但是比较不好理解,其实可以用数据库path,pid两个字段的设计来实现无限分类的功能 1.数据库设计 通过上图可以看出pid就是该栏目的父id,而path = 父path+pi ...
- 无限极分类不知pid_PHP实现无限极分类
导读:说到无限极分类,这个在程序中是常见的一个功能点了.实现的方式也有很多种,今天着重分享一下涉及到数据库的无线分类,可以使用递归处理,也可以使用循环查询数据库处理.但是我们考虑到数据库的性能问题,都 ...
- php 递归实现无限极分类和排序_Laravel框架实现无限极分类
php中文网最新课程 每日17点准时技术干货分享 最近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现laravel框架有更简单高效的实现方式,无限极分类最佳实践,open code与大家共享 ...
- 前台特效(9)无限极分类折叠菜单
在程序中经常会用到无限极分类菜单,经常性的会被绕的头昏脑胀,整理了一个简洁的方式,希望对你有帮助,轻喷!! <!DOCTYPE html><!-- by longdd 2013.4. ...
- PHP递归实现无限极分类
PHP递归实现无限极分类 摘要 今天在编码的时候要用到二级的栏目分类,所以顺便就把无限极分类给整理了一下,采用的是递归方法 //实现无限级分类public function getTree(){$ca ...
最新文章
- c语言socket实现ftp,C++ socket实现miniFTP
- 计算机主板的1117标识,电脑出现:错误1117.......截图如下,
- 9、10、11、12、13_添加标注 (Annotations)、添加网格线(Grid Lines)、显示中文字体、保存图形(saving Figures)、高质量矢量图输出
- Photoshop 手动画金标准流程
- Mockito 的使用
- android 悬浮窗口和主界面同时显示,Android 悬浮窗口(及解决6.0以上无法显示问题)...
- Linux as4开启telnet,Red hat AS4开启telnet过程
- python3.5安装scrapy_win7+Python3.5下scrapy的安装方法
- python 太灵活_Python中的灵活参数
- 使用emacs去除源代码中多余的空格
- BaseRecyclerViewAdapterHelper: 灵活强大的循环适配器
- android返回键返回指定目录,Android 返回键返回到指定的Activity
- 解决Amlogic S905或S9xxx在安装Armbian_20.02.0卡logo或无反应的方法
- 设计模式笔记之二(工厂模式)
- java IO 笔记
- mac Axure下载并汉化
- 05因果图法和决策表法
- 老男孩教育老师的博客
- echarts饼图默认中间显示总数
- java读取文件的字节数据
热门文章
- Linux系统与我之间的故事
- 知方可补不足~开发人员可以自己定义VS文件模版
- ubuntu 14.04 下通过apt-get 安装jdk
- VMware虚拟机文件夹中各文件作用详解
- Spring JdbcTemplate的queryForList(String sql , ClassT elementType)易错使用--转载
- jquery treeview 树形插件
- Linux05-进程管理
- java发送苹果消息慢_Spring-boot JMS 发送消息慢的解决方法
- 实现线程哪种方法更好_实施数据以实现更好的用户体验设计的4种方法
- oracle anbob,Tag Archives: oracle安装 | ANBOB