首頁 >後端開發 >php教程 >如何合併具有匹配鍵的 PHP 數組並建立子數組?

如何合併具有匹配鍵的 PHP 數組並建立子數組?

DDD
DDD原創
2024-10-27 20:33:301060瀏覽

How to Merge PHP Arrays with Matching Keys and Create Sub-Arrays?

PHP 數組合併:將陣列與匹配的鍵組合

本問題探討如何合併兩個共享相同鍵的 PHP 數組。讓我們深入探討問題和解決方案。

問題:

考慮以下兩個陣列:

  • 第一個陣列:鍵值對其中鍵代表攝影機編號,值代表IP 位址。
  • 第二個陣列:具有相同攝影機編號但不同值代表攝影機名稱的鍵值對。

目標是合併透過聚合每個匹配鍵對應的值來聚合這些陣列。

使用 array_map 的解決方案:

雖然 array_merge_recursive 可以遞歸地合併數組,但它需要具有匹配鍵值對的數組。使用array_map 的自訂解決方案可以實現所需的結果:

$results = array();

array_map(function($a, $b) use (&$results) {
    $key = current(array_keys($a));
    $a[$key] = array('ip' => $a[$key]);
    $key = current(array_keys($b));
    $b[$key] = array('name' => $b[$key]);
    $results += array_merge_recursive($a, $b);
}, $array1, $array2);

解釋:

  • 對於第一個數組中的每個鍵,它建立一個子具有鍵“ip”且值設定為原始值的陣列。
  • 類似地,對於第二個數組中的每個鍵,它會創建一個具有鍵“name”且值設置為原始值的子數組.
  • 最後,它使用array_merge_recursive來合併共享相同攝影機編號的子數組。

輸出是一個數組,其中鍵表示攝影機編號,值作為子數組包含'ip' 和 'name' 屬性。

透過利用 array_map 和自訂鍵操作,該解決方案有效地將陣列與匹配鍵合併,同時仍保留鍵值結構。

以上是如何合併具有匹配鍵的 PHP 數組並建立子數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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