PHP 8.4.0 RC4 available for testing

array_sum

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

array_sumLiefert die Summe der Werte eines Array

Beschreibung

array_sum(array $array): int|float

array_sum() gibt die Summe der Werte eines Arrays zurück.

Parameter-Liste

array

Das Eingabe-Array.

Rückgabewerte

Gibt die Summe der Elemente als Integer oder Float zurück bzw. 0, wenn das Array array leer ist.

Changelog

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.

Beispiele

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

add a note

User Contributed Notes 2 notes

up
22
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
?>
up
1
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.
To Top