树形数组 php,php 树形数组
/**
* 树形数组
*/
//方法一
function genTree5($items) {
foreach ($items as $item)
$items[$item['pid']]['son'][$item['id']] = &$items[$item['id']];
return isset($items[0]['son']) ? $items[0]['son'] : array();
}
//方法二
function genTree9($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' => 2, 'name' => '哈尔滨市'),
5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
6 => array('id' => 6, 'pid' => 4, 'name' => '香坊区'),
7 => array('id' => 7, 'pid' => 4, 'name' => '南岗区'),
8 => array('id' => 8, 'pid' => 6, 'name' => '和兴路'),
9 => array('id' => 9, 'pid' => 7, 'name' => '西大直街'),
10 => array('id' => 10, 'pid' => 8, 'name' => '东北林业大学'),
11 => array('id' => 11, 'pid' => 9, 'name' => '哈尔滨工业大学'),
12 => array('id' => 12, 'pid' => 8, 'name' => '哈尔滨师范大学'),
13 => array('id' => 13, 'pid' => 1, 'name' => '赣州市'),
14 => array('id' => 14, 'pid' => 13, 'name' => '赣县'),
15 => array('id' => 15, 'pid' => 13, 'name' => '于都县'),
16 => array('id' => 16, 'pid' => 14, 'name' => '茅店镇'),
17 => array('id' => 17, 'pid' => 14, 'name' => '大田乡'),
18 => array('id' => 18, 'pid' => 16, 'name' => '义源村'),
19 => array('id' => 19, 'pid' => 16, 'name' => '上坝村'),
);
echo '
';
var_dump(genTree5($items));
var_dump(genTree9($items));
?>
树形数组 php,php 树形数组相关推荐
- JS 如何快速高效的将数组转换成树形结构
JS 如何快速高效的将数组转换成树形结构 const data = [{id: 1,pid: 0,name: 'body'}, {id: 2,pid: 1,name: 'title'}, {id: 3 ...
- python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据
先来个函数注释 : /** * 将有父子关系的一维数组转换成树形结构(多维)数据 * console.log(JSON.stringify(setTreeData(data), null, 2)); ...
- mysql 父子维,将有父子关系的一维数组转换成树形结构(多维)数据
拉莫斯之舞 先来个函数注释 :/** * 将有父子关系的一维数组转换成树形结构(多维)数据 * console.log(JSON.stringify(setTreeData(data), null, ...
- 树状数组(树状数组的基本用法与操作)
什么是树状数组?树状数组简单的来说就是将一个数组模拟树形结构. 树状数组有什么用?树状数组可以将求和的操作从O(n)操作简化为O(logn). 如图所示,横线下方为a数组表示为初试数据:上方为数组c, ...
- 一、二维数组的使用以及数组的几种排序算法讲解
数组的使用 Eclipse 安装教程 HelloWrold 数组 特点 分类 快速上手 数组的查找 排序算法 衡量排序算法的优劣 分类 内部排序 外部排序 排序的五大特征 冒泡排序 Arrays工具类 ...
- NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存
NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...
- 关于C语言中的数组指针、指针数组以及二级指针
概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...
- Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度
1. 创建一个 [3,5] 所有元素为 True 的数组 In [162]: b = np.ones((3,5), dtype=bool)In [163]: b Out[163]: array([[ ...
- Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组
1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...
- java中的数组_Java中的数组
数组是在内存中存储相同数据类型的连续的空间 声明一个数组就是在内存空间中划出一串连续的空间 数组名代表的是连续空间的首地址 通过首地址可以依次访问数组所有元素 元素在数组中的排序叫做下标从零开始 数组 ...
最新文章
- 测试代码发布到博客效果(Windows Live Writer发布)
- Handler机制的源码分析
- HDOJ 1175 连连看 DFS
- 主键由数据库mysql 映射native_Hibernate主键生成策略详解
- Dependence Inversion Principle
- FastDFS5.02安装说明
- Two Merged Sequences
- 【代码审计】PHP代码审计---基础记录
- Java EE 7的高峰–使用EclipseLink的多租户示例
- Git和SVN的区别,Git的使用方法大全
- 为了防止程序重排序,慎用volatile
- 我的世界服务器按键显示mode,【服务器相关】【求助!】关于服务器中使用gamemode等命令错误。...
- 利用VBA在EXCLE2010和2007中找回2003式的经典菜单和工具栏
- Java 使用execute方法执行Sql语句
- Win7 SP1 安装python 3.8时,提示 KB2533623 update is required to continue
- ADS(Advanced Design system)原理图结合板层结构仿真(MSub)及版图仿真(EM Simulation)
- seo单页html模板,竞价单页模板设计思路
- 什么是大数据以及大数据的相关技术?
- 使用Minifly打造基于视觉感知的跟踪无人机
- ASMEDIA祥硕 PCIe与SATA控制芯片
热门文章
- java例题:二维数组横竖打印古诗《春晓》
- 给图像马赛克处理的程序c语言,C#对图片进行马赛克处理可控制模糊程度的实现代码...
- 联想控股入围福布斯中国顶尖企业榜
- android o 三星,安卓8.0哪些手机可更新升级 Android O支持谷歌三星索尼机型
- 聊聊ip与mac地址之间那些事
- HTTP的四种请求方式
- 【mathtype】在word中,mathtype打出来的省略号显示不是小圆点,而是短横线,如何让省略号正常显示呢?
- web前端html+css常用布局05列表布局
- Ubuntu 安装WPS
- 体验 服务器正在维护升级中 给大,关于未收录SSR降临! 限时活动的相关说明