Функция array_reduce
Функция array_reduce
сворачивает (редуцирует)
массив к одному значению, используя коллбэк.
В первом параметре функция принимает массив, во втором - коллбэк, который будет по очереди применятся к каждому элементу массива.
В третьем необязательном параметре
будет начальное значение, с которого
будет начинаться сворачивание массива.
По умолчанию этот параметр имеет
значение null
.
Функция-коллбэк параметрами получает два значения. Первое значение содержит результирующее значение с предыдущей итерации. В случае же первой итерации содержит значение третьего параметра.
А второе значение коллбэка содержит текущий элемент массива.
Коллбэк по очереди будет применяться к каждому элементу массива. То, что вернет на текущей итерации коллбэк, попадет в первый параметр коллбэка на следующей итерации.
Таким образом, коллбэк последовательно
применится к каждому элементу массива
по очереди и в итоге получится некое
значение. Это значение и будет результатом
работы функции array_reduce
.
Синтаксис
array_reduce(array $array, callable $callback, mixed $initial = null): mixed
Пример
Давайте найдем сумму элементов массива:
<?php
$arr = [1, 2, 3, 4, 5];
function func($prev, $elem)
{
return $prev + $elem;
}
$res = array_reduce($arr, 'func', 0);
echo $res;
?>
Результат выполнения кода:
15
Смотрите также
-
функцию
array_map
,
которая применяет функцию к элементам массива -
функцию
array_walk
,
которая вызывает функцию для элементов массива -
функцию
array_filter
,
которая фильтрует массив -
функцию
array_walk_recursive
,
которая рекурсивно вызывает функцию для элементов массива