PHP如何实现将数据格式化成树形结构
Admin 2022-09-17 群英技术资讯 750 次浏览
在这篇文章中我们来了解一下“PHP如何实现将数据格式化成树形结构”,一些朋友可能会遇到这方面的问题,对此在下文小编向大家来讲解一下,内容详细,易于理解,希望大家阅读完这篇能有收获哦,有需要的朋友就往下看吧!
上代码:
<?php
/**
* 将数据格式化成树形结构
* @author Xuefen.Tong
* @param array $items
* @return array
*/
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(
=> array('id' => 6, 'pid' => 4, 'name' => '香坊区'),
=> array('id' => 1, 'pid' => 0, 'name' => '江西省'),
=> array('id' => 2, 'pid' => 0, 'name' => '黑龙江省'),
=> array('id' => 3, 'pid' => 1, 'name' => '南昌市'),
=> array('id' => 4, 'pid' => 2, 'name' => '哈尔滨市'),
// 5 => array('id' => 5, 'pid' => 2, 'name' => '鸡西市'),
//
=> 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 "<pre>";
print_r(genTree5($items));
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天小编就为大家分享一篇关于PHP的PDO错误与错误处理,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
(PHP5>=5.3.0)goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。PHP中的 goto...
本文实例讲述了Thinkphp 框架扩展之应用模式实现方法。下文有详解方法和实例,内容详细,逻辑清晰,有需要的朋友可以参考,希望大家阅读完这篇文章后能有所收获,那么下面就一起来了解一下吧。
php聚合式迭代器的介绍:1、实现其他迭代器功能的接口,相当于在其他迭代器上安装一个外壳,只有一种方法。2、聚合迭代器可以与许多迭代器结合,实现更高效的迭代。
本文实例讲述了Laravel5.1 框架分页展示实现方法。分享给大家供大家参考,具体如下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008