Php 递归复制多维数组结构以查找缺少的键

Php 递归复制多维数组结构以查找缺少的键,php,arrays,Php,Arrays,几天来,我一直在努力写一个方法来递归地填充两个多维数组中丢失的键和空值 基本上,我有两个数组,一个是包含所有期望键的“主”多维数组,另一个是我想要填充缺少的值(如果它们不存在的话) 例如: 主阵列: Array ( [title] => [blog_content] => [blog_files] => Array ( [0] => Array (

几天来,我一直在努力写一个方法来递归地填充两个多维数组中丢失的键和空值

基本上,我有两个数组,一个是包含所有期望键的“主”多维数组,另一个是我想要填充缺少的值(如果它们不存在的话)

例如:

主阵列:

Array
(
    [title] => 
    [blog_content] => 
    [blog_files] => Array
        (
            [0] => Array
                (
                    [file] => Array
                        (
                            [file_id] => 
                            [site_id] => 
                            [entry_id] => 
                            [field_id] => 
                            [channel_id] => 
                            [member_id] => 
                            [member_info] => Array
                                (
                                    [0] => Array
                                        (
                                            [username] => 
                                            [member_id] => 
                                            [screen_name] => 
                                            [email] => 
                                            [join_date] => 
                                            [last_visit] => 
                                            [group_id] => 
                                            [in_authorlist] => 
                                        )

                                )

                            [link_field_id] => 
                            [filename] => 
                            [extension] => 
                            [mime] => 
                            [upload_service] => 
                            [title] => 
                            [url_title] => 
                            [filesize] => 
                            [md5] => 
                            [file_primary] => 
                            [file_order] => 
                            [date] => 
                            [downloads] => 
                        )

                )

        )
改装阵列:

Array
(
    [title] => Title goes here
    [status] => open
    [entry_date] => 1321038883
    [entry_id] => 79
    [blog_content] => 
    [blog_files] => 
    [test_file] => 

)
我试图做的是获取主数组,并将任何缺少的键和多维结构添加到modded数组中,使其看起来如下所示:

Array
(
    [title] => Title goes here
    [status] => open
    [entry_date] => 1321038883
    [entry_id] => 79
    [blog_content] => Here's the content
[blog_files] => Array
    (
        [0] => Array
            (
                [file] => Array
                    (
                        [file_id] => 
                        [site_id] => 
                        [entry_id] => 
                        [field_id] => 
                        [channel_id] => 
                        [member_id] => 
                        [member_info] => Array
                            (
                                [0] => Array
                                    (
                                        [username] => 
                                        [member_id] => 
                                        [screen_name] => 
                                        [email] => 
                                        [join_date] => 
                                        [last_visit] => 
                                        [group_id] => 
                                        [in_authorlist] => 
                                    )

                            )

                        [link_field_id] => 
                        [filename] => 
                        [extension] => 
                        [mime] => 
                        [upload_service] => 
                        [title] => 
                        [url_title] => 
                        [filesize] => 
                        [md5] => 
                        [file_primary] => 
                        [file_order] => 
                        [date] => 
                        [downloads] => 
                    )

            )


)
我尝试过一些令人讨厌的头部爆炸式递归(我现在头疼),内置的函数如array_merge(对数字键不起作用),但没有任何东西能够让事情正常工作

但需要记住的一点是,有时修改后的数组有时会具有主数组的结构或结构的一部分,并带有值,因此将主数组附加到修改后的数组将覆盖任何现有值


任何帮助/建议都将不胜感激。

这看起来非常适合经常被遗忘的人


我不知道你想用多维
$moddedArray
做什么,因为你的例子不清楚。

是的,试过了。但问题是,修改后的数组有时会有一些主数组的结构,因此会覆盖这些值。我认为您需要更多地处理这些递归。
$newArray = $moddedArray + $masterArray;