/**

* 树形数组

*/

//方法一

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 树形数组相关推荐

  1. JS 如何快速高效的将数组转换成树形结构

    JS 如何快速高效的将数组转换成树形结构 const data = [{id: 1,pid: 0,name: 'body'}, {id: 2,pid: 1,name: 'title'}, {id: 3 ...

  2. python画父子关系图_将有父子关系的一维数组转换成树形结构(多维)数据

    先来个函数注释 : /** * 将有父子关系的一维数组转换成树形结构(多维)数据 * console.log(JSON.stringify(setTreeData(data), null, 2)); ...

  3. mysql 父子维,将有父子关系的一维数组转换成树形结构(多维)数据

    拉莫斯之舞 先来个函数注释 :/** * 将有父子关系的一维数组转换成树形结构(多维)数据 * console.log(JSON.stringify(setTreeData(data), null,  ...

  4. 树状数组(树状数组的基本用法与操作)

    什么是树状数组?树状数组简单的来说就是将一个数组模拟树形结构. 树状数组有什么用?树状数组可以将求和的操作从O(n)操作简化为O(logn). 如图所示,横线下方为a数组表示为初试数据:上方为数组c, ...

  5. 一、二维数组的使用以及数组的几种排序算法讲解

    数组的使用 Eclipse 安装教程 HelloWrold 数组 特点 分类 快速上手 数组的查找 排序算法 衡量排序算法的优劣 分类 内部排序 外部排序 排序的五大特征 冒泡排序 Arrays工具类 ...

  6. NumPy — 创建全零、全1、空、arange 数组,array 对象类型,astype 转换数据类型,数组和标量以及数组之间的运算,NumPy 数组共享内存

    NumPy 简介 一个用 python 实现的科学计算包.包括: 1.一个强大的 N 维数组对象 Array : 2.比较成熟的(广播)函数库: 3.用于整合 C/C++ 和 Fortran 代码的工 ...

  7. 关于C语言中的数组指针、指针数组以及二级指针

    概念解释 数组指针:首先它是一个指针,它指向一个数组,即指向数组的指针:在32 位系统下永远是占4 个字节,至于它指向的数组占多少字节,不知道.数组指针指向的是数组中的一个具体元素,而不是整个数组,所 ...

  8. Numpy 生成 Bool型数组、一维转多维数组reshape、多维转一维数组、替换数组元素、提取数组元素、数组交集、差集、过滤数组元素、二维数组反转行、交换数组维度

    1. 创建一个 [3,5] 所有元素为 True 的数组 In [162]: b = np.ones((3,5), dtype=bool)In [163]: b Out[163]: array([[ ...

  9. Go 学习笔记(10)— 数组定义、数组声明、数组初始化、访问数组、数组相等、向函数传递数组

    1. 数组定义 数组是具有相同唯一类型的一组已编号且长度固定的数据项序列,这种类型可以是任意的原始类型例如整形.字符串或者自定义类型. 2. 声明数组 Go 语言数组声明需要指定元素类型及元素个数,语 ...

  10. java中的数组_Java中的数组

    数组是在内存中存储相同数据类型的连续的空间 声明一个数组就是在内存空间中划出一串连续的空间 数组名代表的是连续空间的首地址 通过首地址可以依次访问数组所有元素 元素在数组中的排序叫做下标从零开始 数组 ...

最新文章

  1. 测试代码发布到博客效果(Windows Live Writer发布)
  2. Handler机制的源码分析
  3. HDOJ 1175 连连看 DFS
  4. 主键由数据库mysql 映射native_Hibernate主键生成策略详解
  5. Dependence Inversion Principle
  6. FastDFS5.02安装说明
  7. Two Merged Sequences
  8. 【代码审计】PHP代码审计---基础记录
  9. Java EE 7的高峰–使用EclipseLink的多租户示例
  10. Git和SVN的区别,Git的使用方法大全
  11. 为了防止程序重排序,慎用volatile
  12. 我的世界服务器按键显示mode,【服务器相关】【求助!】关于服务器中使用gamemode等命令错误。...
  13. 利用VBA在EXCLE2010和2007中找回2003式的经典菜单和工具栏
  14. Java 使用execute方法执行Sql语句
  15. Win7 SP1 安装python 3.8时,提示 KB2533623 update is required to continue
  16. ADS(Advanced Design system)原理图结合板层结构仿真(MSub)及版图仿真(EM Simulation)
  17. seo单页html模板,竞价单页模板设计思路
  18. 什么是大数据以及大数据的相关技术?
  19. 使用Minifly打造基于视觉感知的跟踪无人机
  20. ASMEDIA祥硕 PCIe与SATA控制芯片

热门文章

  1. java例题:二维数组横竖打印古诗《春晓》
  2. 给图像马赛克处理的程序c语言,C#对图片进行马赛克处理可控制模糊程度的实现代码...
  3. 联想控股入围福布斯中国顶尖企业榜
  4. android o 三星,安卓8.0哪些手机可更新升级 Android O支持谷歌三星索尼机型
  5. 聊聊ip与mac地址之间那些事
  6. HTTP的四种请求方式
  7. 【mathtype】在word中,mathtype打出来的省略号显示不是小圆点,而是短横线,如何让省略号正常显示呢?
  8. web前端html+css常用布局05列表布局
  9. Ubuntu 安装WPS
  10. 体验 服务器正在维护升级中 给大,关于未收录SSR降临! 限时活动的相关说明