array_sum

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

array_sum配列の中の値の合計を計算する

説明

array_sum(array $array): int|float

array_sum() は、配列の中の値の合計を整数または float として返します。

パラメータ

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

up
22
rodrigo at adboosters dot com
3 years ago
If you want to calculate the sum in multi-dimensional arrays:<?phpfunction 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?>
up
1
harl at gmail dot com
2 years 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.
To Top