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

両方の配列のキーと値のペアを保持したまま、キーが一致する 2 つの PHP 配列を 1 つの配列にマージするにはどうすればよいですか?

DDD
リリース: 2024-10-29 13:33:02
オリジナル
647 人が閲覧しました

How can I merge two PHP arrays with matching keys into a single array, preserving the key-value pairs from both arrays?

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

問題ステートメント:

2 つの PHP をマージするには両方の配列のキーと値のペアを保持しながら、一致するキーを持つ配列を 1 つの配列にまとめます。

配列の例:

配列 1:

<code class="php">array(
    [
        "Camera1" => "192.168.101.71"
    ],
    [
        "Camera2" => "192.168.101.72"
    ],
    [
        "Camera3" => "192.168.101.74"
    ]
)</code>
ログイン後にコピー

配列 2:

<code class="php">array(
    [
        "Camera1" => "VT"
    ],
    [
        "Camera2" => "UB"
    ],
    [
        "Camera3" => "FX"
    ]
)</code>
ログイン後にコピー

array_map を使用した解決策:

<code class="php">$array1 = array(
    ["Camera1" => "192.168.101.71"],
    ["Camera2" => "192.168.101.72"],
    ["Camera3" => "192.168.101.74"],
);

$array2 = array(
    ["Camera1" => "VT"],
    ["Camera2" => "UB"],
    ["Camera3" => "FX"]
);

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);

    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
  
    $results += array_merge_recursive($a, $b);

}, $array1, $array2);

var_dump($results);</code>
ログイン後にコピー

出力:

array (size=3)
  'Camera1' => 
    array (size=2)
      'ip' => string '192.168.101.71' (length=14)
      'name' => string 'VT' (length=2)
  'Camera2' => 
    array (size=2)
      'ip' => string '192.168.101.72' (length=14)
      'name' => string 'UB' (length=2)
  'Camera3' => 
    array (size=2)
      'ip' => string '192.168.101.74' (length=14)
      'name' => string 'FX' (length=2)
ログイン後にコピー

このソリューションは、両方の配列のキーと値のペアを保持し、それらを 1 つの配列にマージします。 「array_merge_recursive」関数は、配列を再帰的に結合するために使用され、ネストされた配列を可能にします。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート