返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP数组转树形结构、树形结构转数组
  • 946
分享到

PHP数组转树形结构、树形结构转数组

开发语言php 2023-09-18 18:09:32 946人浏览 泡泡鱼
摘要

PHP数组转树形结构、树形结构转数组 一、实现功能二、原数据三、数组转数据树四、数据树转数组五、结语 一、实现功能 在日常工作中大家会经常遇到将数组转换为树形菜单(如菜单)或者将树形结构转

PHP数组转树形结构、树形结构转数组

一、实现功能

在日常工作中大家会经常遇到将数组转换为树形菜单(如菜单)或者将树形结构转换为数组的场景,下面便是对如上两个场景的实现。

二、原数据

// 原数组格式$data = [    ['id' => 1, 'name' => '常规管理', 'pid' => 0],    ['id' => 2, 'name' => '常规管理--二级(1)', 'pid' => 1],    ['id' => 3, 'name' => '常规管理--三级(1)', 'pid' => 2],    ['id' => 4, 'name' => '常规管理--三级(2)', 'pid' => 2],    ['id' => 5, 'name' => '系统配置', 'pid' => 0],    ['id' => 6, 'name' => '系统配置--二级(1)', 'pid' => 5],    ['id' => 7, 'name' => '系统配置--二级(2)', 'pid' => 5],    ['id' => 8, 'name' => '系统配置--三级(1)', 'pid' => 6],];

三、数组转数据树

按照传入参数,以递归的方式组装数据获取树形结构

function ArrayToTree($data, &$tree_data, $pid = 0, $main_field = 'id', $pid_field = 'pid', $child_field = 'child'){    foreach ($data as $val) {        if ($val[$pid_field] == $pid) {            $child = [];            ArrayToTree($data, $child, $val[$main_field], $main_field, $pid_field, $child_field);            if (is_array($child) && count($child)) {                $val[$child_field] = $child;            }            $tree_data[] = $val;        }    }}

转化数据格式

数据格式

四、数据树转数组

按照传入参数,以递归的方式拆解树形机构获取二维数组

function TreeToArray($tree_data,&$data,$child_field = 'child'){    foreach($tree_data as $val){        if(isset($val[$child_field])){            $child_data=$val[$child_field];            TreeToArray($child_data,$data,$child_field);            unset($val[$child_field]);        }        $data[]=$val;    }}

五、结语

以上便是php转树形结构,树形结构转PHP数组的代码实现,日常工作中也会经常遇到,有什么问题欢迎大家讨论和留言,喜欢的同学们点赞关注收藏哦!

来源地址:https://blog.csdn.net/qq_42549289/article/details/127685126

--结束END--

本文标题: PHP数组转树形结构、树形结构转数组

本文链接: https://www.lsjlt.com/news/412023.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作