同一のキーを持つ配列のマージ: array_merge の制限を克服する
ソフトウェア開発では、同一のキーを持つ配列をマージすることが一般的なタスクになることがあります。ただし、array_merge 関数は、同じキーを持つすべての要素の結合に失敗することが多く、その結果、データが失われます。
次の例を考えてみましょう:
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge($A, $B); // Result [a] => 1 [b] => 2 [c] => 4 [d] => 5</code>
示されているように、'c の元の値は' => 3 は結合後に失われます。この問題に対処するには、別のアプローチが必要です。
解決策: array_merge_recursive
解決策は、代わりに array_merge_recursive 関数を使用することです。 array_merge とは異なり、array_merge_recursive は入力配列のキーと値を再帰的にマージし、すべてのデータを保持します。
次のコードは、このアプローチを示しています。
<code class="php">$A = array('a' => 1, 'b' => 2, 'c' => 3); $B = array('c' => 4, 'd' => 5); array_merge_recursive($A, $B); // Result [a] => 1 [b] => 2 [c] => [0 => 3, 1 => 4] [d] => 5</code>
ご覧のとおり、両方の値が関連付けられています。 「c」は保持されます。ただし、結合された配列には 'c' キーが 1 つしか存在できないため、結果は配列内の配列になります。
以上が同じキーを持つ配列をマージしてすべてのデータを保存するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。