(PHP 4 >= 4.0.4, PHP 5, PHP 7, PHP 8)
array_sum — Calculate the sum of values in an array
Description
array_sum(array $array
): int|float
Parameters
-
array
-
The input array.
Return Values
Returns the sum of values as an integer or float; 0
if the
array
is empty.
Examples
Example #1 array_sum() examples
<?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";
?>
The above example will output:
rodrigo at adboosters dot com ¶
1 year 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
?>
Michele Marsching ¶
4 months ago
Notably the function converts strings to float and ignores strings if they are not convertable:
<?php
$a = array("String", 2, 4, 6, 8);
echo "sum(a) = " . array_sum($a) . "n";$b = array("12.3456", 2, 4, 6, 8);
echo "sum(b) = " . array_sum($b) . "n";
?>
sum(a) = 20
sum(b) = 32.3456
harl at gmail dot com ¶
4 months 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.
samiulmomin191139 at gmail dot com ¶
1 year ago
<?php
//you can also sum multidimentional arrays like this;function arraymultisum(array $arr){
$sum=null;
foreach(
$arr as $child){
$sum+=is_array($child) ? arraymultisum($child):$child;
}
return $sum;
}
echo
arraymultisum(array(1,4,5,[1,5,8,[4,5,7]]));//Answer Will be
//40?>
yakushabb at gmail dot com ¶
1 year ago
array_sum converts strings to integer and array_sum(2,'2') returns 4.
I had no idea.
444 ¶
1 year ago
$total = 0;
foreach ($array as $key => $value){
$total += $value;
}
Print "sum $total";
array_sum
(PHP 4 >= 4.0.4, PHP 5, PHP 7)
array_sum — Вычисляет сумму значений массива
Описание
number array_sum
( array $array
)
array_sum() возвращает сумму значений массива.
Список параметров
-
array
-
Входной массив.
Возвращаемые значения
Возвращает сумму значений в виде integer или float.
Примеры
Пример #1 Пример использования 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";
?>
Результат выполнения данного примера:
Вернуться к: Функции для работы с массивами
Длина массива задается аргументом этой функции.
Эта фраза мне кажется неоднозначной. Имеется в виду, что единственный аргумент ф-ии – сам массив, и по нему определяем его длину? Или же ф-ии передаётся два параметра: сам массив и кол-во элементов, которое надо просуммировать, причём, это кол-во может быть меньше, равно, или даже больше, чем длина массива, и все эти случаи нужно обработать?
Ориентируюсь на самое простое объяснение, передаётся только сам массив.
function get_sum($arr) { // убрал значение по умолчанию (=100)
// – здесь ожидается массив, а не число
$sum = 0; // ок, инициализируем сумму
for ($i = 0; $i < count($arr); $i++) { // длина массива: count($arr)
// перебираем элементы от 0 и до длина_минус_1:
// напр. массив [0,1,2] а длина его 3. Поэтому верхнее значение
// $i < 3
$sum = $sum + $arr[$i]; // к общей сумме надо прибавить очередное значение из массива – внутри цикла, а не снаружи
}
return $sum; // есть смысл, чтобы ф-я возвращала результат,
// а что с ним делать дальше - выводить на экран или ещё что
// пусть решают там, снаружи ф-ии.
}
// теперь надо как-то использовать эту функцию:
echo "Сумма массива [1,2,3] = ";
echo get_sum( array(1,2,3) );
echo PHP_EOL; // символ новой строки
P.s. и если это не учебное задание, в PHP есть встроенная функция, которая суммирует все элементы данного массива быстрее, array_sum()
:
echo "Сумма [1,2,3] = " . array_sum([1,2,3]) . PHP_EOL;
The array_sum function calculates and returns the sum of all the values of the given array.
What is the syntax of the array_sum function in PHP?
array_sum(array)
Parameter | Details |
---|---|
array | The array to calculate the sum of – Required |
Examples of array_sum function
Example 1. Return sum of array values 2+7+15
<?php
$arr=array(2,7,15);
echo array_sum($arr);
?>
Example 2. Return sum of associative array values 2.1+7.2+15.3
<?php
$arr=array("a"=>2.1,"b"=>7.2,"c"=>15.3);
echo array_sum($arr);
?>
Answer: Using array_sum()
function
We can calculate the sum of array elements using the PHP predefined array_sum()
function. This function takes the array name as its value and returns the sum of all the elements present within that particular array.
Example: PHP array_sum()
function
In the given example, we have calculated the sum of all the array elements of the given array named $arr
using the PHP predefined array_sum()
function.
<!DOCTYPE html>
<html>
<head>
<title>Calculate the sum of values in an array </title>
</head>
<body>
<?php
$arr = array(2, 6, 3, 7, 8, 12, 76, 89);
$total = array_sum($arr);
echo $total;
?>
</body>
</html>
Sum of all the array elements is: 203
Apart from using a predefined PHP function, we can also calculate the sum of all the elements of an array using for loop.
Example: Using for loop
In the given example, we have calculated the sum of all the array elements of the given array $arr
using for loop.
<!DOCTYPE html>
<html>
<head>
<title>Calculate the sum of values in an array </title>
</head>
<body>
<?php
$arr = array(2, 6, 3, 7, 8, 12, 76, 89);
$total = 0;
for ($i = 0; $i < count($arr); $i++) {
$total = $total + $arr[$i];
}
print("Sum of all the elements is: " . $total);
?>
</body>
</html>
Sum of all the array elements is: 203
Conclusion
In this lesson, we have learned how to calculate the sum of all the array elements in PHP. We discussed two methods. At first, we have calculated the sum of all the array elements using the array_sum()
function, and second we used the for loop
for calculating the sum of all the elements of an array.