以共享列值合併二維數組
將兩個多維數組與共享值組合起來可能是一項常見的程式設計任務。雖然使用嵌套循環和條件檢查的傳統迭代方法是可靠的,但它們通常會導致程式碼冗長且可能效率低下。本文探討了使用本機 PHP 陣列函數的優雅解決方案。
考慮以下兩個數組:
$array1 = [ ['rank' => '579', 'id' => '1'], ['rank' => '251', 'id' => '2'], ]; $array2 = [ ['size' => 'S', 'status' => 'A', 'id' => '1'], ['size' => 'L', 'status' => 'A', 'id' => '2'], ];
目標是根據共享的「id」值合併這些數組,產生結果如下:
[ ['size' => 'S', 'status' => 'A', 'id' => '1', 'rank' => '579'], ['size' => 'L', 'status' => 'A', 'id' => '2', 'rank' => '251'], ]
解1: array_merge_recursive
PHP 的array_merge_recursive() 函數可以合併數組,遞歸地將元素與匹配的鍵組合起來。
$mergedArray = array_merge_recursive($array1, $array2);
這個解決方案很簡單,不需要額外的循環或條件。
解決方案2:自訂函數
或者,可以建立一個自訂函數以可能更有效的方式執行合併:
function my_array_merge(array &$array1, array &$array2) { $result = []; foreach ($array1 as $key => &$value) { $result[$key] = array_merge($value, $array2[$key]); } return $result; } $mergedArray = my_array_merge($array1, $array2);
此函數迭代第一個數組,合併根據匹配鍵,每個元素與其第二個數組中的對應元素相符。
兩種解決方案都提供了基於匹配的二維數組的有效方法關於共享列值。選擇的具體方法可能取決於效能要求或程式碼可讀性偏好等因素。
以上是如何在 PHP 中基於共享列值高效合併兩個二維數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!