PHP Conference Japan 2024

array_sum

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

array_sum计算数组中值的总和

描述

array_sum(数组 $array): int|float

array_sum() 返回数组中值的总和。

参数

数组

输入数组。

返回值

返回值的总和,结果为整数或浮点数;如果array为空,则返回0

变更日志

版本 描述
8.3.0 现在当array的值无法转换为intfloat时会发出E_WARNING。以前,数组对象会被忽略,而其他值则被强制转换为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 条注释

22
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
?>
1
harl at gmail dot com
1 年前
array_sum() 不会“忽略不可转换的字符串”,而是将它们转换为零。array_product() 也执行相同的操作,其中“忽略”和“转换为零”之间的区别更为明显。
To Top