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 サイトの他の関連記事を参照してください。