PHP 8.6.0 Beta 1 is available for testing

array_sum

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

array_sumCalcula la suma de los valores del array

Descripción

function array_sum(array $array): int |float

array_sum() devuelve la suma de los valores del array array.

Parámetros

array

El array de entrada.

Valores devueltos

Devuelve la suma de los valores, en forma de un int o de un float 0 si el array está vacío.

Historial de cambios

Versión Descripción
8.3.0 Emite ahora un E_WARNING cuando los valores de tipo array no pueden ser convertidos en int o float . Anteriormente, los arrays y los objetos eran ignorados mientras que todos los demás valores eran convertidos en int . Además, los objetos que definen una conversión numérica (por ejemplo, GMP ) son ahora convertidos en lugar de ser ignorados.

Ejemplos

Ejemplo #1 Ejemplo con 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";
?>

El ejemplo anterior mostrará:

sum(a) = 20
sum(b) = 6.9

Found A Problem?

Learn How To Improve This PageSubmit a Pull RequestReport a Bug
+add a note

User Contributed Notes 2 notes

up
24
rodrigo at adboosters dot com
4 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
2
harl at gmail dot com
3 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.
+add a note

AltStyle によって変換されたページ (->オリジナル) /