array_sum
(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
array_sum — 配列の中の値の合計を計算する
パラメータ
array
-
入力の配列。
戻り値
値の合計を整数または
float として返します。
array
が空の場合は 0
を返します。
変更履歴
バージョン | 説明 |
---|---|
8.3.0 |
array
の値が整数や浮動小数点数に変換できない場合、
E_WARNING が発生するようになりました。
これより前のバージョンでは、
配列とオブジェクトが渡されても無視され、
それ以外の値は整数に変換されていました。
さらに、数値へのキャストが定義されているオブジェクト
(例: 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
+add a note
User Contributed Notes 2 notes
rodrigo at adboosters dot com ¶
2 years ago
If you want to calculate the sum in multi-dimensional arrays:
<?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;
}
?>
Example:
<?php
$data =
[
'a' => 5,
'b' =>
[
'c' => 7,
'd' => 3
],
'e' => 4,
'f' =>
[
'g' => 6,
'h' =>
[
'i' => 1,
'j' => 2
]
]
];
echo array_multisum($data);
//output: 28
?>
harl at gmail dot com ¶
1 year ago
array_sum() doesn't "ignore strings if they are not convertible", it converts them to zero. array_product() does the same thing, where the difference between "ignoring" and "converting to zero" is much more obvious.