首頁 >後端開發 >php教程 >如何在 PHP 中合併具有匹配鍵的數組,同時保留兩個值?

如何在 PHP 中合併具有匹配鍵的數組,同時保留兩個值?

Patricia Arquette
Patricia Arquette原創
2024-10-28 18:43:29913瀏覽

How to Merge Arrays with Matching Keys in PHP While Keeping Both Values?

在 PHP 中合併具有匹配鍵的數組

在 PHP 中使用數組時,通常需要將多個數組合併在一起。但是,當陣列共用匹配鍵時,仔細處理合併過程變得非常重要。

初始方法

如同提供的資訊中所提到的,您嘗試合併使用 array_merge() 合併兩個陣列。此函數執行淺合併,組合兩個陣列的值。但是,在這種情況下,由於數組具有重疊的鍵,因此第一個數組的值會被第二個數組的值覆蓋。

使用 array_map() 的替代解

要解鍵重疊的問題,可以使用 array_map()。此函數將使用者定義的回呼函數應用於指定數組的每個元素,並根據修改後的值傳回一個新數組。

在提供的解決方案中:

  1. 準備數組:

    • 使用給定的資料準備$ array1 和$array2 數組。
  2. 定義回呼函數:

    • 使用 function() 定義匿名回呼函數。它接受兩個參數 $a 和 $b,分別代表 $array1 和 $array2 中的元素。
  3. 提取鍵並修改值:

    • 在回調內部,使用current(array_keys($a)) 取得鍵($key)。
    • $a 中的值被修改為包含「ip」包含其原始值的鍵。
  4. 處理第二個陣列:

    • 第二個陣列($b) 已處理同樣,取得其鍵($key) 並修改值以包含“name”鍵。
  5. 合併陣列:

    • 修改後的陣列($a 和$b)使用array_merge_recursive() 進行合併的數組,函數執行深度合併,遞歸地合併數組。
  6. 儲存結果:

    • 合併結果使用 = 運算子儲存在 $results 中。

輸出

此解的輸出是一個數組,其中鍵(Camera1、Camera2、Camera3)合併,值在“ip”和“name”鍵下組合,提供結構化結果。

以上是如何在 PHP 中合併具有匹配鍵的數組,同時保留兩個值?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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