首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果具有父id,则将项目的php数组转换为分层数组

将项目的PHP数组转换为分层数组的方法是通过递归实现的。下面是一个示例代码:

代码语言:txt
复制
function buildTree(array $array, $parentId = 0) {
    $tree = array();
    
    foreach ($array as $item) {
        if ($item['parent_id'] == $parentId) {
            $children = buildTree($array, $item['id']);
            if ($children) {
                $item['children'] = $children;
            }
            $tree[] = $item;
        }
    }
    
    return $tree;
}

// 示例数据
$projects = array(
    array('id' => 1, 'name' => '项目1', 'parent_id' => 0),
    array('id' => 2, 'name' => '项目2', 'parent_id' => 0),
    array('id' => 3, 'name' => '子项目1', 'parent_id' => 1),
    array('id' => 4, 'name' => '子项目2', 'parent_id' => 1),
    array('id' => 5, 'name' => '子项目3', 'parent_id' => 2),
    array('id' => 6, 'name' => '子项目4', 'parent_id' => 2),
    array('id' => 7, 'name' => '子子项目1', 'parent_id' => 3),
    array('id' => 8, 'name' => '子子项目2', 'parent_id' => 3),
);

$tree = buildTree($projects);
print_r($tree);

上述代码中,buildTree函数接受一个包含项目信息的数组和一个父ID作为参数。它首先创建一个空数组$tree用于存储分层数组。然后遍历项目数组,如果某个项目的父ID与给定的父ID相等,则将该项目添加到$tree数组中。同时,递归调用buildTree函数来构建该项目的子项目数组,并将其赋值给$item['children']。最后,返回构建好的分层数组。

对于上述示例数据,输出结果如下:

代码语言:txt
复制
Array
(
    [0] => Array
        (
            [id] => 1
            [name] => 项目1
            [parent_id] => 0
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 3
                            [name] => 子项目1
                            [parent_id] => 1
                            [children] => Array
                                (
                                    [0] => Array
                                        (
                                            [id] => 7
                                            [name] => 子子项目1
                                            [parent_id] => 3
                                        )

                                    [1] => Array
                                        (
                                            [id] => 8
                                            [name] => 子子项目2
                                            [parent_id] => 3
                                        )

                                )

                        )

                    [1] => Array
                        (
                            [id] => 4
                            [name] => 子项目2
                            [parent_id] => 1
                        )

                )

        )

    [1] => Array
        (
            [id] => 2
            [name] => 项目2
            [parent_id] => 0
            [children] => Array
                (
                    [0] => Array
                        (
                            [id] => 5
                            [name] => 子项目3
                            [parent_id] => 2
                        )

                    [1] => Array
                        (
                            [id] => 6
                            [name] => 子项目4
                            [parent_id] => 2
                        )

                )

        )

)

这样,我们成功将具有父ID的项目PHP数组转换为了分层数组。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

没有搜到相关的沙龙

领券