ARRAY_REDUCE(3) 1 ARRAY_REDUCE(3)
array_reduce - Iteratively reduce the array to a single value using a callback function
SYNOPSIS
mixed array_reduce NULL (array $array, callable $callback, [mixed $initial])
DESCRIPTION
array_reduce(3) applies iteratively the $callback function to the elements of the $array, so as to reduce the array to a single value.
PARAMETERS
o $array
- The input array.
o $callback
-
mixed callback (mixed $carry, mixed $item)
o $carry
- Holds the return value of the previous iteration; in the case of the first iteration it instead holds the value of $ini-
tial.
o $item
- Holds the value of the current iteration.
o $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.
RETURN VALUES
Returns the resulting value.
If the array is empty and $initial is not passed, array_reduce(3) returns NULL.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.3.0 | |
| | |
| | Changed $initial to allow mixed, previously |
| | integer. |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
array_reduce(3) example
<?php
function sum($carry, $item)
{
$carry += $item;
return $carry;
}
function multiplication($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, "multiplication", 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"
?>
SEE ALSO
array_filter(3), array_map(3), array_unique(3), array_count_values(3).
PHP Documentation Group ARRAY_REDUCE(3)