ホームページ >バックエンド開発 >PHPチュートリアル >両方の値を保持しながら、PHP で一致するキーを持つ配列をマージするにはどうすればよいですか?

両方の値を保持しながら、PHP で一致するキーを持つ配列をマージするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-10-28 18:43:29915ブラウズ

How to Merge Arrays with Matching Keys in PHP While Keeping Both Values?

PHP で一致するキーを持つ配列をマージする

PHP で配列を操作する場合、多くの場合、複数の配列をマージする必要があります。ただし、配列が一致するキーを共有する場合は、マージ プロセスを慎重に処理することが重要になります。

初期アプローチ

提供された情報に記載されているように、マージしようとしました。 array_merge() を使用して 2 つの配列。この関数は、両方の配列の値を結合する浅いマージを実行します。ただし、この場合、配列のキーが重複しているため、最初の配列の値は 2 番目の配列の値で上書きされます。

array_map() を使用した代替ソリューション

キーの重複の問題に対処するには、array_map() を利用できます。この関数は、指定された配列の各要素にユーザー定義のコールバック関数を適用し、変更された値に基づいて新しい配列を返します。

提供されたソリューションの場合:

  1. 配列の準備:

    • $array1 配列と $array2 配列が指定されたデータで準備されます。
  2. コールバック関数を定義します:

    • 匿名コールバック関数は function() を使用して定義されます。これは、$array1 と $array2 の要素をそれぞれ表す 2 つのパラメーター $a と $b を受け入れます。
  3. キーを抽出して値を変更します:

    • コールバック内で、current(array_keys($a)) を使用してキー ($key) が取得されます。
    • $a の値は、「ip」を含むように変更されます。元の値を含むキー。
  4. 2 番目の配列の処理:

    • 2 番目の配列 ($b) が処理されます同様に、そのキー ($key) を取得し、「name」キーを含むように値を変更します。
  5. 配列をマージします:

    • 変更された配列 ($a と $b) は、array_merge_recursive() を使用してマージされます。これは、配列を再帰的に結合するディープ マージを実行します。
  6. 結果を保存します:

    • マージされた結果は = 演算子を使用して $results に保存されます。

出力

このソリューションの出力は、キー (Camera1、Camera2、Camera3) が結合された配列であり、値は 'ip' キーと 'name' キーの下で結合され、構造化された結果が得られます。

以上が両方の値を保持しながら、PHP で一致するキーを持つ配列をマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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