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 つは、変更された配列がマスター配列の構造または構造の一部を持ち、値が含まれている場合があるため、変更された配列にマスターを追加すると、既存の値が上書きされることです。
ヘルプ/アドバイスをいただければ幸いです。