(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
array_sum — Calcule la somme des valeurs du tableau
array_sum() retourne la somme des
valeurs du tableau array
.
array
Le tableau d'entrée.
Retourne la somme des valeurs, sous la forme d'un entier ou d'un nombre décimal 0
si le array
est vide.
Version | Description |
---|---|
8.3.0 |
Émet désormais un E_WARNING lorsque les valeurs de type array
ne peuvent pas être converties en entier ou nombre décimal.
Auparavant, les tableaux et les objets étaient ignorés tandis que toutes les autres valeurs étaient converties en entier.
De plus, les objets définissant une conversion numérique (par exemple, GMP ) sont désormais convertis au lieu d'être ignorés.
|
Exemple #1 Exemple avec 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";
?>
L'exemple ci-dessus va afficher :
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.