array_reduce

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

array_reduceReduce itérativemente un array

Descripción

array_reduce(array $array, callable $callback, mixed $initial = null): mixed

array_reduce() aplica itérativemente la función callback a los elementos del array array, de manera que se reduce el array a un valor simple.

Parámetros

array

El array de entrada.

callback
callback(mixed $carry, mixed $item): mixed
carry

Contiene el valor devuelto de la iteración previa; en el caso de la primera iteración, será el valor del parámetro initial.

item

Contiene el valor de la iteración actual.

initial

Si el argumento opcional initial está disponible, será utilizado para inicializar el proceso, o bien como valor final si el array está vacío.

Valores devueltos

Devuelve el valor resultante.

Si el array está vacío y el parámetro initial no es pasado, array_reduce() devuelve null.

Historial de cambios

Versión Descripción
8.0.0 Si callback espera que se pase un parámetro por referencia, esta función ahora emitirá un E_WARNING.

Ejemplos

Ejemplo #1 Ejemplo con array_reduce()

<?php
function sum($carry, $item)
{
$carry += $item;
return
$carry;
}

function
product($carry, $item)
{
$carry *= $item;
return
$carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), ya que: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

Ver también

  • array_filter() - Filtra los elementos de un array mediante una función de retrollamada
  • array_map() - Aplica una función sobre los elementos de un array
  • array_unique() - Elimina los valores duplicados de un array
  • array_count_values() - Cuenta las ocurrencias de cada valor distinto en un array