ホームページ  >  記事  >  バックエンド開発  >  同じキーを持つ配列をマージしてすべてのデータを保存するにはどうすればよいですか?

同じキーを持つ配列をマージしてすべてのデータを保存するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-03 12:15:29609ブラウズ

How to Merge Arrays with Identical Keys and Preserve All Data?

同一のキーを持つ配列のマージ: 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。