多维数组读取无限级分类子分类

在处理含有无限级分类结构的数据时,将结果存储为一维数组可能会造成信息丢失。本文介绍如何修改 php 函数以将一维数组转换为多维数组,以便以层次结构表示分类信息。

具体来说,我们修改了 getchildarea 函数以使用 deal_list_to_tree2 函数执行该转换。修改后的代码如下:

function getchildarea($id) {
    if (!$id) {
        return;
    }
    static $area;
    $area = $area ?? new ppcommonmodelrea;
    $result = collection($area->where(['pid' => $id])->order('id desc')->select())->toarray();
    static $res = [];
    if ($result) {
        foreach ($result as $key => $val) {
            $res[] = $val;
            $res[$key]['children_list'] = getchildarea($val['id']); // 按层次递归生成子分类
        }
    }
    return $res;
}
登录后复制

修改后,调用 deal_list_to_tree2 函数:

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

$multidimensionalarray = deal_list_to_tree2(getchildarea(1));
登录后复制

这样,我们就可以获得一个包含多层级子分类的多维数组:

[
    [
        'id' => 1,
        'area_name' => '安徽省',
        'pid' => 0,
        'level' => 1,
        'children_list' => [
            [
                'id' => 4,
                'area_name' => '合肥市',
                'pid' => 1,
                'level' => 2,
                'children_list' => [
                    [
                        'id' => 7,
                        'area_name' => '肥东县',
                        'pid' => 4,
                        'level' => 3,
                        'children_list' => [
                            [
                                'id' => 8,
                                'area_name' => '桃园镇',
                                'pid' => 7,
                                'level' => 4,
                                'children_list' => [
                                    [
                                        'id' => 9,
                                        'area_name' => '八斗乡',
                                        'pid' => 8,
                                        'level' => 5
                                    ]
                                ]
                            ]
                        ]
                    ],
                    [
                        'id' => 10,
                        'area_name' => '长丰县',
                        'pid' => 4,
                        'level' => 3
                    ]
                ]
            ]
        ]
    ]
]
登录后复制

以上就是如何用PHP高效处理无限级分类数据并转换为多维数组?的详细内容,更多请关注慧达安全导航其它相关文章!

点赞(0)

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部