0

2 つの多次元配列から欠落しているキーと空の値を再帰的に埋めるメソッドを作成しようとして、数日間壁に頭をぶつけてきました。

基本的に、私は2つの配列を持っています.1つは予想されるすべてのキーを持つ「マスター」多次元配列で、もう1つは欠落している値が存在しない場合に埋めたいものです。

例えば:

マスター配列:

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] => 

)

私がやろうとしているのは、マスター配列を取得し、不足しているキーと多次元構造を moded 配列に追加して、次のようにすることです。

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 (数値キーではうまく機能しない) などの組み込み関数を試しましたが、何も機能しませんでした。

ただし、覚えておくべきことの 1 つは、変更された配列がマスター配列の構造または構造の一部を持ち、値が含まれている場合があるため、変更された配列にマスターを追加すると、既存の値が上書きされることです。

ヘルプ/アドバイスをいただければ幸いです。

4

1 に答える 1

1

これは、忘れられがちな配列共用体演算子にぴったりのようです。

$newArray = $moddedArray + $masterArray;

$moddedArrayあなたの例からは明らかではないので、多次元 s で何をしたいのかわかりません。

于 2012-06-01T18:22:02.253 に答える