繁体   English   中英

创建递归嵌套数组

[英]Create recursively nested array

我想基于键创建多维数组。

下面是我的原始数组。

原始数组。

Array
(
    [13] => Array
        (
            [member_id] => 13
            [parent_id] => 0
        )

    [14] => Array
        (
            [member_id] => 14
            [parent_id] => 13
        )

    [15] => Array
        (
            [member_id] => 15
            [parent_id] => 14
        )

)

注意:提供的数组是静态的,但它是动态的。

所需数组

Array
(
    [13] => Array
        (
            [member_id] => 13
            [parent_id] => 0
            [14] => Array
            (
                [member_id] => 14
                [parent_id] => 13
                [15] => Array
                (
                    [member_id] => 15
                    [parent_id] => 14
                )
            )
        )
)

谢谢。

PHP

function buildTree(array $elements, $parentId = 0) {
    $branch = array();

    foreach ($elements as $element) {
        if ($element['parent_id'] == $parentId) {
            $children = buildTree($elements, $element['member_id']);
            if ($children) {
                $element['children'] = $children;
            }
            $branch[] = $element;
        }
    }

    return $branch;
}

$tree = buildTree($output);

产量

Array
(
    [13] => Array
        (
            [member_id] => 13
            [parent_id] => 0
            [children] => Array
            (
                [0] => Array
                (
                    [member_id] => 14
                    [parent_id] => 13
                    [children] => Array
                    (
                        [0] => Array
                        (
                            [member_id] => 15
                            [parent_id] => 14
                        )
                    )
                )
            )
        )
)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM