首頁 > 後端開發 > php教程 > 如何對多維 PHP 數組中的列值求和?

如何對多維 PHP 數組中的列值求和?

DDD
發布: 2024-12-27 09:40:12
原創
487 人瀏覽過

How to Sum Columnar Values in Multi-Dimensional PHP Arrays?

在多維數組中加入列值

您的目標是對具有不同鍵集的多維數組中特定鍵關聯的值求和。考慮以下輸入:

Array
(
    [0] => Array
        (
            [gozhi] => 2
            [uzorong] => 1
            [ngangla] => 4
            [langthel] => 5
        )

    [1] => Array
        (
            [gozhi] => 5
            [uzorong] => 0
            [ngangla] => 3
            [langthel] => 2
        )

    [2] => Array
        (
            [gozhi] => 3
            [uzorong] => 0
            [ngangla] => 1
            [langthel] => 3
        )
)
登入後複製

期望的結果是:

Array
(
    [gozhi] => 10
    [uzorong] => 1
    [ngangla] => 8
    [langthel] => 10
)
登入後複製

要實現這一點,請考慮以下方法:

array_walk_recursive()

array_walk_recursive()
$final = array();

array_walk_recursive($input, function($item, $key) use (&$final){
    $final[$key] = isset($final[$key]) ?  $item + $final[$key] : $item;
});
登入後複製

array_walk_recursive()

對於一般情況的解決方案,請使用array_walk_recursive():
array_sum(array_column($input, 'gozhi'));
登入後複製

array_column()

對於特定鍵(例如“gozhi”),使用array_column() (自P. 5.5 起可用):
$final = array_shift($input);

foreach ($final as $key => &$value){
   $value += array_sum(array_column($input, $key));
}    

unset($value);
登入後複製

對於相同的數組鍵

如果所有內部數組具有相同的鍵:
$final = array();

foreach($input as $value)
    $final = array_merge($final, $value);

foreach($final as $key => &$value)
    $value = array_sum(array_column($input, $key));

unset($value);
登入後複製
使用array_column() 的一般情況解決方案獲取所有唯一鍵,然後對每個鍵求和:

以上是如何對多維 PHP 數組中的列值求和?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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