首頁 > 後端開發 > php教程 > 如何在 PHP 中基於共享列值高效合併兩個二維數組?

如何在 PHP 中基於共享列值高效合併兩個二維數組?

DDD
發布: 2024-12-11 08:29:11
原創
406 人瀏覽過

How Can I Efficiently Merge Two 2D Arrays in PHP Based on a Shared Column Value?

以共享列值合併二維數組

將兩個多維數組與共享值組合起來可能是一項常見的程式設計任務。雖然使用嵌套循環和條件檢查的傳統迭代方法是可靠的,但它們通常會導致程式碼冗長且可能效率低下。本文探討了使用本機 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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板