PHP 同一鍵上的數組合併:使用array_map 的解決方案
在PHP 中,當數組共享公共鍵時,合併數組可能會很困難。讓我們透過利用 array_map 函數的解決方案來解決這個問題。
目標:
基於共享鍵(例如“Camera1”)合併兩個數組$array1 和$array2 ,“Camera2”),並確保合併結果保持所需的結構。
解:
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>
此解決方案有效地合併兩個數組,同時保留共用金鑰並確保所需的陣列結構。
以上是如何使用「array_map」將 PHP 陣列與共享鍵合併?的詳細內容。更多資訊請關注PHP中文網其他相關文章!