PHP 树形结构构建与转换实战:实现 arrayToTree、treeToArray 及获取树深度

PHP 实现树形结构数组的构建与转换详解(含完整示例)

一、文章标题

《PHP 树形结构构建与转换实战:实现 arrayToTree、treeToArray 及获取树深度》


二、摘要

在开发中,我们经常会遇到需要将扁平化数据(如数据库查询结果)转换为树状结构的需求,例如菜单管理、分类层级、组织架构等。本文将详细介绍一组 PHP 函数,包括:

  • arrayToTree:将一维数组构建成树形结构;
  • treeToArray:将树形结构还原为一维数组;
  • getTreeDeep:获取树的最大深度。

通过这些函数的实现和使用,我们可以更加灵活地处理具有父子关系的数据结构。


三、功能概述

主要功能说明:

方法名 功能描述
arrayToTree() 将一维数组根据父子 ID 构建成树形结构
treeToArray() 将树形结构递归展开为一维数组
getTreeDeep() 获取树结构的最大深度

这些方法适用于菜单系统、权限管理、商品分类等多种业务场景,是处理嵌套结构的基础工具。


四、代码结构解析

1. 构建树结构:arrayToTree()

public static function arrayToTree(array $data, int $id, string $parentIdName = 'parent_id', string $idName = 'id', int $level = 1): array
参数说明:
参数名 类型 默认值 描述
$data array - 扁平数据源
$id int - 当前根节点 ID
$parentIdName string parent_id 父级字段名
$idName string id 主键字段名
$level int 1 当前层级(用于记录层级信息)
返回值:

返回一个树形结构数组,每个节点包含其子节点数组(children 字段),以及当前层级(level)、索引(index)等附加信息。

示例输入:
$data = [
    ['id' => 1, 'parent_id' => 0, 'name' => '一级分类'],
    ['id' => 2, 'parent_id' => 1, 'name' => '二级分类A'],
    ['id' => 3, 'parent_id' => 1, 'name' => '二级分类B'],
    ['id' => 4, 'parent_id' => 2, 'name' => '三级分类'],
];<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ZH蔚来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值