PHP合并多个多维数据,还保留唯一的子级

问题描述 投票:0回答:1

很抱歉,这么长的描述,但是我现在正在努力将多个多维关联数组合并超过一天。任何人都可以建议实现此目标的优化方法。我想根据所需结果创建HTML清单。请参阅当前列表的附件图像。但我想将孩子合并为普通父母。

ARRAY 1:

Array
(
    [cat_id] => 1
    [parent_cat_id] => 0
    [cat_name] => Collectables
    [children] => Array
    (
        [cat_id] => 1335
        [parent_cat_id] => 1
        [cat_name] => Animal Collectables
        [children] => Array
        (
            [cat_id] => 10811
            [parent_cat_id] => 1335
            [cat_name] => Bird Collectables
            [children] => Array
            (
                [cat_id] => 37847
                [parent_cat_id] => 10811
                [cat_name] => Bluebird
            )
        )
    )
)

阵列2:

Array
(
    [cat_id] => 1
    [parent_cat_id] => 0
    [cat_name] => Collectables
    [children] => Array
    (
        [cat_id] => 1335
        [parent_cat_id] => 1
        [cat_name] => Animal Collectables
        [children] => Array
        (
            [cat_id] => 10811
            [parent_cat_id] => 1335
            [cat_name] => Bird Collectables
            [children] => Array
            (
                [cat_id] => 37848
                [parent_cat_id] => 10811
                [cat_name] => Hummingbird
            )
        )
    )
)

我希望结果保持原来的公共数组并在同一级别上创建另一个子级子数组,如下所示。

Array
(
    [cat_id] => 1
    [parent_cat_id] => 0
    [cat_name] => Collectables
    [children] => Array
    (
        [cat_id] => 1335
        [parent_cat_id] => 1
        [cat_name] => Animal Collectables
        [children] => Array
        (
            [cat_id] => 10811
            [parent_cat_id] => 1335
            [cat_name] => Bird Collectables
            [children] => Array
            (
                [0] => Array(
                    [cat_id] => 37847
                    [parent_cat_id] => 10811
                    [cat_name] => Bluebird
                )
                [1] => Array(
                    [cat_id] => 37848
                    [parent_cat_id] => 10811
                    [cat_name] => Hummingbird
                )
            )
        )
    )
)

[[在此处输入图像描述] [1]

[1]:当前列表:https://i.stack.imgur.com/p4F0X.png

php arrays array-merge array-map array-walk
1个回答
0
投票

array_merge_recursive应该可以帮助您。

一个例子是:

<?php
$arr1['foo']['bar'] = 'foobar';
$arr2['foo']['bar'] = 'barfoo';

print_r(array_merge_recursive($arr1, $arr2));

输出:

Array
(
    [foo] => Array
        (
            [bar] => Array
                (
                    [0] => foobar
                    [1] => barfoo
                )

        )

)
© www.soinside.com 2019 - 2024. All rights reserved.