(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
array_sum — Liefert die Summe der Werte eines Array
array_sum() gibt die Summe der Werte eines Arrays zurück.
array
Das Eingabe-Array.
Gibt die Summe der Elemente als Integer oder Float zurück bzw.
0
, wenn das Array array
leer ist.
Version | Beschreibung |
---|---|
8.3.0 |
Wenn array -Werte nicht in Integer oder
Float umgewandelt werden können, wird nun ein Fehler der Stufe
E_WARNING ausgegeben. Zuvor wurden Arrays und
Objekts ignoriert, während alle anderen Werte in Integer
umgewandelt wurden. Außerdem werden Objekte, die eine numerische
Umwandlung definieren (z. B. GMP ), nicht mehr
ignoriert, sondern umgewandelt.
|
Beispiel #1 array_sum()-Beispiele
<?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";
?>
Das oben gezeigte Beispiel erzeugt folgende Ausgabe:
sum(a) = 20 sum(b) = 6.9
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
?>
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.