En este post te voy a mostrar a sumar los valores de un arreglo en PHP de dos maneras: con un algoritmo que recorre el arreglo y va sumando una variable; y con la función array_reduce
de PHP.
Al final podremos tener la suma de los valores del arreglo en PHP.
Sumar recorriendo el arreglo
El ejemplo más sencillo y aplicable a otros lenguajes es recorrer el arreglo e ir sumando cada valor en una variable:
<?php
// https://parzibyte.me/blog
$numeros = array(12, 34, 554, 123);
$suma = 0;
foreach ($numeros as $numero) {
$suma += $numero;
}
echo "Suma: $suma";
No importa si los números son enteros o flotantes, la suma se hará igualmente. Usamos el operador +=
que es una forma corta de:
$suma = $suma + $numero;
Ahora veamos cómo hacerlo usando array_reduce
.
Suma de valores de arreglo en PHP con array_reduce
La función array_reduce de PHP reduce un arreglo a un solo valor. La sintaxis es:
array_reduce($arreglo, $funcion_que_reduce, $valorInicial);
La función que reduce es una función en donde recibimos el acarreo (lo que se lleva almacenado) y el elemento N del arreglo.
El valor inicial es un valor que se devuelve si el arreglo está vacío, y es el valor que tiene el acarreo la primera vez.
Para obtener la suma de valores con PHP usamos lo siguiente:
<?php
// https://parzibyte.me/blog
$numeros = array(12, 34, 554, 123, 15);
$valorInicial = 0; // Valor inicial de array_reduce
$suma = array_reduce($numeros, function ($acarreo, $numero) {
return $acarreo + $numero;
}, $valorInicial);
echo "Suma: $suma";
Como ves, es incluso un código un poco más complejo, pero array_reduce
es útil en muchas otras aplicaciones.
Recuerda que la función que indicamos es anónima, pero podría ser almacenada o con nombre; todo depende del uso que le des.
Podrias ayudarme, tengo un gran problema con una autosuma, no logro conseguir resolver, quiero automar esta variable $num