PHP 數組:合併具有匹配鍵的數組
在PHP 中,有時我們需要合併多個數組,確保其中的項與相同的鍵被組合。考慮以下場景:
問題:
我們有兩個具有匹配鍵的數組,希望將它們合併,例如:
<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中文網其他相關文章!