」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 合併多個關聯數組時如何對共享鍵的值求和?

合併多個關聯數組時如何對共享鍵的值求和?

發佈於2024-11-04
瀏覽:508

How to Sum Values of Shared Keys When Merging Multiple Associative Arrays?

透過共享鍵求和來合併多個平面關聯數組

當使用array_merge() 函數組合關聯數組時,與共享鍵關聯的值傾向於替換而不是求和。當嘗試從多個關聯數組新增共享金鑰的值時,這提出了一個挑戰。

要克服這個障礙,可以採用多種方法:

  • Foreach 迭代錯誤抑制:
$sums = array();
foreach (array_keys($a1   $a2) as $key) {
    $sums[$key] = (isset($a1[$key]) ? $a1[$key] : 0)   (isset($a2[$key]) ? $a2[$key] : 0);
}
  • 匿名對映:
$keys = array_fill_keys(array_keys($a1   $a2), 0);
$sums = array_map(function ($a1, $a2) { return $a1   $a2; }, array_merge($keys, $a1), array_merge($keys, $a2));
  • 組合解:
$sums = array_fill_keys(array_keys($a1   $a2), 0);
array_walk($sums, function (&$value, $key, $arrs) { $value = @($arrs[0][$key]   $arrs[1][$key]); }, array($a1, $a2));
  • 任意數量數組的自訂函數:
function array_sum_identical_keys() {
    $arrays = func_get_args();
    $keys = array_keys(array_reduce($arrays, function ($keys, $arr) { return $keys   $arr; }, array()));
    $sums = array();

    foreach ($keys as $key) {
        $sums[$key] = array_reduce($arrays, function ($sum, $arr) use ($key) { return $sum   @$arr[$key]; });
    }
    return $sums;
}

這些方法提供了靈活的解決方案,用於合併多個關聯數組並對與共享鍵關聯的值求和。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3