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

PHP 配列を一致するキーとマージし、それらの値を結合するにはどうすればよいですか?

DDD
DDDオリジナル
2024-11-01 08:28:30378ブラウズ

How to merge PHP arrays with matching keys and combine their values?

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

PHP では、複数の配列をマージして、項目が確実に一致するようにする必要がある場合があります。同じキーが結合されます。次のシナリオを考えてみましょう:

問題:

一致するキーを持つ 2 つの配列があり、それらをマージしたいと考えています。

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

$array2 = [
    ['Camera1' => 'VT'],
    ['Camera2' => 'UB'],
    ['Camera3' => 'FX']
];</code>

解決策:

キーと値の関係を維持しながらこれらの配列をマージするには、array_map を array_keys と組み合わせて使用​​し、配列を操作して結合します。

<code class="php">$results = array();

array_map(function($a, $b) use (&$results) {

    $key1 = current(array_keys($a));
    $a[$key1] = ['ip' => $a[$key1]];

    $key2 = current(array_keys($b));
    $b[$key2] = ['name' => $b[$key2]];

    $results = array_merge_recursive($a, $b);

}, $array1, $array2);</code>

これこのソリューションは、両方の配列の各要素をループし、対応するキーを抽出し、値の名前を変更して、array_merge_recursive を使用して値をマージできるようにすることで機能します。結果は、以下に示すように、各キーがマージされた結果を含む配列になります。

<code class="php">array (
  'Camera1' => array (
    'ip' => '192.168.101.71',
    'name' => 'VT'
  ),
  'Camera2' => array (
    'ip' => '192.168.101.72',
    'name' => 'UB'
  ),
  'Camera3' => array (
    'ip' => '192.168.101.74',
    'name' => 'FX'
  )
)</code>

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

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