array_reduce

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

&reftitle.description; `mixed` `array_reduce` `array` `array` `callable` `callback` `mixed` `initial`&null;

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

&reftitle.parameters;

`array`

- The input array.

`callback`

- The callback function.

  `mixed```callback`` `mixed` `result` `mixed` `item`

`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.

&reftitle.returnvalues;

Returns the resulting value.

If the array is empty and `initial` is not passed, `array_reduce` returns &null;.

&reftitle.changelog;

&Version; | &Description;
5.3.0 | Changed `initial` to allow `mixed`, previously `integer`.

&reftitle.examples;

### `array_reduce` example

    <?php
    function rsum($v, $w)
    {
        $v += $w;
        return $v;
    }

    function rmul($v, $w)
    {
        $v *= $w;
        return $v;
    }

    $a = array(1, 2, 3, 4, 5);
    $x = array();
    $b = array_reduce($a, "rsum");
    $c = array_reduce($a, "rmul", 10);
    $d = array_reduce($x, "rsum", "No data to reduce");
    ?>

This will result in `$b` containing `15`, `$c` containing `1200` (= 10*1*2*3*4*5), and `$d` containing `No data to reduce`.

&reftitle.seealso;

- `array_filter`
- `array_map`
- `array_unique`
- `array_count_values`