同じキーでの PHP 配列のマージ: array_map を使用した解決策
PHP では、配列が共通のキーを共有している場合、配列のマージが困難になることがあります。 array_map 関数を活用したソリューションでこの問題に対処しましょう。
目的:
共有キー (例: "Camera1") に基づいて 2 つの配列 $array1 と $array2 を結合します。
解決策:
array_map は、複数の配列を同時に反復処理し、それぞれにコールバック関数を適用する方法を提供します。要素。使用方法は次のとおりです:
<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"] ]; $results = []; array_map(function($a, $b) use (&$results) { // Get the key for both arrays $key = current(array_keys($a)); $a[$key] = ['ip' => $a[$key]]; $key = current(array_keys($b)); $b[$key] = ['name' => $b[$key]]; $results += array_merge_recursive($a, $b); }, $array1, $array2);</code>
仕組み:
出力:
var_dump($results);
次の出力が生成されます:
<code class="php">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)</code>
このソリューションは、共有キーを保持し、目的の配列構造を確保しながら、2 つの配列を効果的にマージします。
以上が「array_map」を使用して PHP 配列を共有キーとマージするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。