array_reduce

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

array_reduceReduz um array para um único valor através de um processo iterativo via callback

Descrição

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

array_reduce() aplica iterativamente a função callback aos elementos de array, de forma a reduzir o array a um único valor.

Parâmetros

array

O array de entrada.

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

Informa o valor da iteração anterior. No caso da primeira iteração ele terá o valor de initial.

item

Mantém o valor da iteração atual.

initial

Se o argumento opcional initial for passado, ele será utilizado no início do processo, ou como um resultado final se o array estiver vazio.

Valor Retornado

Retorna o valor resultante.

Se a array estiver vazio e initial não for passado, array_reduce() retornará null.

Registro de Alterações

Versão Descrição
8.0.0 Se a função callback espera que um parâmetro seja passado por referência, esta função agora emitirá um E_WARNING.

Exemplos

Example #1 Exemplo de 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), because: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

Veja Também