過去にこういう質問が多かったと思いますので、よろしければ申し訳ありません。基本的に、重複するキーに対して2つのキーを作成せずに、2つの多次元配列をマージしようとしています。
次に例を示します。
$one = array(
'foo' => array(
'bar' => array(
'hello' => 'world',
'boom' => 'universe'
),
'whiz' => array(
'wham' => array(
'blam' => 'kaplow'
)
)
)
);
$two = array(
'foo' => array(
'whiz' => 'woo',
'king' => array(
'kong' => 'animal'
)
)
);
使用するarray_merge_recursive($one, $two);
と、次の結果が得られます。
array(1) {
["foo"]=>
array(3) {
["bar"]=>
array(2) {
["hello"]=>
string(5) "world"
["boom"]=>
string(8) "universe"
}
["whiz"]=>
array(2) {
["wham"]=>
array(1) {
["blam"]=>
string(6) "kaplow"
}
// This is the problem.
[0]=>
string(3) "woo"
}
["king"]=>
array(1) {
["kong"]=>
string(6) "animal"
}
}
}
使用するarray_merge($one, $two);
と、次の結果が得られます。
array(1) {
["foo"]=>
array(2) {
// This is good but the rest of the array is gone.
["whiz"]=>
string(3) "woo"
["king"]=>
array(1) {
["kong"]=>
string(6) "animal"
}
}
}
これが私が求めている出力です:
array(1) {
["foo"]=>
array(3) {
["bar"]=>
array(2) {
["hello"]=>
string(5) "world"
["boom"]=>
string(8) "universe"
}
// Key is replaced, rest of the array remains intact.
["whiz"]=>
string(3) "woo"
["king"]=>
array(1) {
["kong"]=>
string(6) "animal"
}
}
}
だから基本的に、私はの機能をarray_merge_recursive()
求めていますが、それが次のように機能するためにarray_replace_recursive()
、皆さんは何かアイデアがありますか?
-
私は今のところ答えを受け入れましたが、他のおそらくより良い方法を示すことに落胆しないでください、私はもう一度チェックします。
みんなありがとう。