array_reduce()

array_reduce() — Iteratively reduce the array to a single value using a callback function.

Built-in function of PHP 8.5. The manual lists it as available in PHP 4 >= 4.0.5, PHP 5, PHP 7, PHP 8. This page is the reference card: signature, parameters and return value, plus the changelog and the example the manual provides.

What it does

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

Signature

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

Parameters

ParameterTypeWhat it takes
$arrayarrayThe input array.
$callbackcallableHolds the return value of the previous iteration; in the case of the first iteration it instead holds the value of initial.
$initialmixedIf 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 value

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

Example

A runnable snippet:

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"

Changelog

VersionChange
8.0.0If callback expects a parameter to be passed by reference, this function will now emit an E_WARNING.

See also

array_filter(), array_map(), array_unique(), array_count_values()

All PHP 8.5 built-in functions

Reference card built from the PHP manual page array_reduce() (PHP documentation, CC BY 3.0). The page is generated from the manual, so the wording of the parameter and return value text follows php.net.