php无限极分类数组怎么放_PHP无限极分类数组的存储

admin 百科 11
PHP无限极分类常用五种实现方式:一、递归构建嵌套数组;二、引用方式一次性构建;三、SplFixedArray预分配空间;四、JSON路径字符串辅助存储;五、对象化节点模型存储。

php无限极分类数组怎么放_PHP无限极分类数组的存储-第1张图片-佛山资讯网

如果需要在PHP中实现无限极分类功能,通常需将具有父子关系的分类数据组织为嵌套数组结构。以下是几种常见的存储方式及其实现步骤:

一、递归构建嵌套数组

该方法通过递归遍历原始扁平数组,依据parent_id字段逐层查找子节点并组装为多维嵌套结构。适用于数据库查询结果为单层记录、含id和parent_id字段的场景。

1、定义一个空数组用于存放最终的树形结构。

2、编写递归函数,接收当前层级的父ID(初始为0或指定根ID)作为参数。

立即学习“PHP免费学习笔记(深入)”;

3、遍历原始数据,筛选出所有parent_id等于当前父ID的记录。

4、对每个匹配记录,将其添加到结果数组,并调用自身传入该记录的id作为新父ID。

5、将子节点数组赋值给当前节点的children键。

二、引用方式一次性构建

利用PHP变量引用特性,在单次循环中完成父子节点关联,避免重复遍历,性能优于递归法。要求原始数据已按id顺序排列或可索引访问。

1、创建一个空数组$tree用于保存根节点,另建一个引用数组$refs用于快速定位各节点。

2、遍历原始数据,为每条记录创建一个新数组,并将其同时存入$tree(当parent_id为0时)和$refs[id]中。

3、若当前记录的parent_id不为0,则将当前记录追加到$refs[parent_id]['children']中。

4、确保每条记录初始化时包含children键且值为空数组,防止后续追加失败。

三、使用SplFixedArray预分配空间

针对大数据量分类(如万级节点),可借助SplFixedArray提升内存效率与访问速度。适用于已知最大ID范围且ID连续性较高的情况。

1、根据原始数据中最大id确定SplFixedArray长度,并初始化为null。

标签: php js json go 大数据 递归函数 排列

发布评论 0条评论)

还木有评论哦,快来抢沙发吧~