array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'uk', ), 'this' => array ( 0 => 'function.array-reduce.php', 1 => 'array_reduce', 2 => 'Iteratively reduce the array to a single value using a callback function', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Функції для роботи з масивами', ), 'prev' => array ( 0 => 'function.array-rand.php', 1 => 'array_rand', ), 'next' => array ( 0 => 'function.array-replace.php', 1 => 'array_replace', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'en', 'path' => 'reference/array/functions/array-reduce.xml', ), 'history' => array ( ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); contributors($setup); ?>

array_reduce

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

array_reduceIteratively reduce the array to a single value using a callback function

Опис

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

array_reduce() applies iteratively the callback function to the elements of the array, so as to reduce the array to a single value.

Параметри

array

The input array.

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

Holds the return value of the previous iteration; in the case of the first iteration it instead holds the value of initial.

item

Holds the value of the current iteration.

initial

If the optional initial is available, it will be used at the beginning of the process, or as a final result in case the array is empty.

Значення, що повертаються

Returns the resulting value.

If the array is empty and initial is not passed, array_reduce() returns null.

Журнал змін

Версія Опис
8.0.0 Тепер функція видасть E_WARNING, якщо callback очікує параметр за посиланням.

Приклади

Приклад #1 array_reduce() example

<?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"
?>

Прогляньте також