2024 年 PHP 日本研討會

array_sum

(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)

array_sum計算陣列中值的總和

說明

array_sum(陣列 $array): 整數|浮點數

array_sum() 返回陣列中所有值的總和。

參數

array

輸入的陣列。

回傳值

返回值的總和,類型為整數或浮點數;如果 array 為空,則返回 0

更新日誌

版本 說明
8.3.0 現在,當 `array` 值無法轉換為 intfloat 時,會發出 E_WARNING 警告。先前,arrayobject 會被忽略,而其他所有值都會被強制轉換為 int。此外,定義了數值轉換的物件(例如 GMP)現在會被轉換,而不是被忽略。

範例

範例 #1 array_sum() 範例

<?php
$a
= array(2, 4, 6, 8);
echo
"sum(a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo
"sum(b) = " . array_sum($b) . "\n";
?>

以上範例將輸出:

sum(a) = 20
sum(b) = 6.9

新增註解

使用者貢獻的註解 2 則註解

rodrigo at adboosters dot com
2 年前
如果您想計算多維陣列的總和

<?php
function array_multisum(array $arr): float {
$sum = array_sum($arr);
foreach(
$arr as $child) {
$sum += is_array($child) ? array_multisum($child) : 0;
}
return
$sum;
}
?>

範例

<?php
$data
=
[
'a' => 5,
'b' =>
[
'c' => 7,
'd' => 3
],
'e' => 4,
'f' =>
[
'g' => 6,
'h' =>
[
'i' => 1,
'j' => 2
]
]
];

echo
array_multisum($data);

// 輸出:28
?>
harl at gmail dot com
1 年前
array_sum() 並非「忽略無法轉換的字串」,而是將它們轉換為零。array_product() 也是如此,其中「忽略」和「轉換為零」之間的差異更加明顯。
To Top