一行代码生成树
时间:2008-09-25
来源:互联网
详细内容请参考
http://bbs.phpchina.com/viewthread.php?tid=80868&page=4#pid616644
[php]
//从缓存或者数据库中读出以下数组内容
$a_list = array(
1=>array('ID'=>1, 'PARENT'=>0, 'NAME'=>'祖父'),
2=>array('ID'=>2, 'PARENT'=>1, 'NAME'=>'父亲'),
3=>array('ID'=>3, 'PARENT'=>1, 'NAME'=>'叔伯'),
4=>array('ID'=>4, 'PARENT'=>2, 'NAME'=>'自己'),
5=>array('ID'=>5, 'PARENT'=>4, 'NAME'=>'儿子'),
6=>array('ID'=>6, 'PARENT'=>5, 'NAME'=>'孙子'),
7=>array('ID'=>7, 'PARENT'=>2, 'NAME'=>'姐妹'),
8=>array('ID'=>8, 'PARENT'=>3, 'NAME'=>'表亲'),
9=>array('ID'=>9, 'PARENT'=>7, 'NAME'=>'甥儿'),
10=>array('ID'=>10, 'PARENT'=>4, 'NAME'=>'女儿'),
11=>array('ID'=>11, 'PARENT'=>10, 'NAME'=>'外孙'),
12=>array('ID'=>12, 'PARENT'=>5, 'NAME'=>'孙女')
);
//将数组转变成树,因为使用了引用,所以不会占用太多的内存,一行代码搞定
foreach ($a_list as $id => $item) if ($item['PARENT']) $a_list[$item['PARENT']][$item['ID']] = &$a_list[$id];
//获得ID为n的全部子孙
//$a_list[n]
//获得自己的全部子孙,自己的ID为4
print_r($a_list[4]);
//结果如下:
/*
Array
(
[ID] => 4
[PARENT] => 2
[NAME] => 自己
[5] => Array
(
[ID] => 5
[PARENT] => 4
[NAME] => 儿子
[6] => Array
(
[ID] => 6
[PARENT] => 5
[NAME] => 孙子
)
[12] => Array
(
[ID] => 12
[PARENT] => 5
[NAME] => 孙女
)
)
[10] => Array
(
[ID] => 10
[PARENT] => 4
[NAME] => 女儿
[11] => Array
(
[ID] => 11
[PARENT] => 10
[NAME] => 外孙
)
)
)
*/
[/php]
作者: sentrychen 发布时间: 2008-09-25

作者: 40years 发布时间: 2008-10-09

作者: ianlee 发布时间: 2008-11-11
作者: dx_andy 发布时间: 2008-11-21

确实比较漂亮!
作者: fybird 发布时间: 2009-05-17
作者: jyb21 发布时间: 2009-06-20
作者: strongability 发布时间: 2009-09-25

作者: mackay1213 发布时间: 2009-09-26
作者: minoc 发布时间: 2009-09-27
作者: minoc 发布时间: 2009-09-27
不过用到是会用
作者: minoc 发布时间: 2009-09-27
作者: tang2000 发布时间: 2009-09-27
作者: flyhacker 发布时间: 2009-09-29
斗破苍穹 http://www.shucheng.com/book/5/5575/
作者: 智没平 发布时间: 2009-09-29
作者: denghai315 发布时间: 2009-11-06
作者: shanji 发布时间: 2009-11-06
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28