Как найти сумму всех элементов массива php

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

array_sumCalculate 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(2468);
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
array_sum function in PHP

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.



Добавить комментарий