Функция array_reduce

Функция array_reduce сворачивает (редуцирует) массив к одному значению, используя коллбэк.

В первом параметре функция принимает массив, во втором - коллбэк, который будет по очереди применятся к каждому элементу массива.

В третьем необязательном параметре будет начальное значение, с которого будет начинаться сворачивание массива. По умолчанию этот параметр имеет значение null.

Функция-коллбэк параметрами получает два значения. Первое значение содержит результирующее значение с предыдущей итерации. В случае же первой итерации содержит значение третьего параметра.

А второе значение коллбэка содержит текущий элемент массива.

Коллбэк по очереди будет применяться к каждому элементу массива. To, что вернет на текущей итерации коллбэк, попадет в первый параметр коллбэка на следующей итерации.

Таким образом, коллбэк последовательно применится к каждому элементу массива по очереди и в итоге получится некое значение. Это значение и будет результатом работы функции array_reduce.

Синтаксис

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

Пример

Давайте найдем сумму элементов массива:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($prev, $elem)
  {
    return $prev + $elem;
  }
  
  $res = array_reduce($arr, 'func', 0);
  echo $res;
?>

Результат выполнения кода:

php15

Смотрите также

  • функцию array_map,
    которая применяет функцию к элементам массива
  • функцию array_walk,
    которая вызывает функцию для элементов массива
  • функцию array_filter,
    которая фильтрует массив
  • функцию array_walk_recursive,
    которая рекурсивно вызывает функцию для элементов массива