PHP 8.4.0 RC4 available for testing

array_sum

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

array_sumОбчислює суму значень в масиві

Опис

array_sum(array $array): int|float

Функція array_sum() повертає суму значень масиву.

Параметри

array

Вхідний масив.

Значення, що повертаються

Повертає суму значень у вигляді цілого числа або десяткового дробу; 0, якщо array — порожній.

Журнал змін

Версія Опис
8.3.0 Тепер видає E_WARNING, якщо значення масиву array не можуть бути перетворені в int або float. Раніше array та object ігнорувалися, тоді як всі інші значення приводилися до int. Більше того, об'єкти, котрі можна привести до числових значень (напр. GMP), тепер перетворюються, а не ігноруються.

Приклади

Приклад #1 Використання array_sum()

<?php
$a
= array(2, 4, 6, 8);
echo
"Сума (a) = " . array_sum($a) . "\n";

$b = array("a" => 1.2, "b" => 2.3, "c" => 3.4);
echo
"Сума (b) = " . array_sum($b) . "\n";
?>

Поданий вище приклад виведе:

Сума (a) = 20
Сума (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