首頁 >後端開發 >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 中,有時我們需要合併多個數組,確保其中的項與相同的鍵被組合。考慮以下場景:

問題:

我們有兩個具有匹配鍵的數組,希望將它們合併,例如:

<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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn