Оглавление
Пример: сумма чисел в массивеАльтернатива с использованием array_reduceСинтаксисПример: подсчёт суммы товаров в корзинеИтог
Функция PHP array_reduce
Функция
array_reduce() позволяет свести массив к единственному значению с помощью функции обратного вызова (callback). Проще всего понять принцип работы на примере.Пример: сумма чисел в массиве
Как это работает:
- Определяем массив
$numbersс числами 10, 20 и 30. - Заводим переменную
$totalи присваиваем ей начальное значение 0. - В цикле
foreachпоочерёдно прибавляем каждое число из массива к$total. - Выводим итоговое значение.
Альтернатива с использованием array_reduce
Тот же результат можно получить без цикла
foreach, используя функцию array_reduce():Как это работает:
array_reduce()принимает массив и функцию обратного вызова.- Она последовательно применяет callback к элементам массива, сводя их к одному значению.
С PHP 7.3 можно использовать стрелочные функции:
Синтаксис
$array- входной массив, который будет сведен к одному значению.$callback- функция обратного вызова, определяющая логику свёртки.$initial- начальное значение для свёртки. Если массив пуст, возвращается это значение. Если не указано и массив пуст, возвращаетсяnull.
Callback-функция (reducer) принимает два аргумента:
$carry- результат предыдущей итерации (или начальное значение).$item- текущий элемент массива.
Пример: подсчёт суммы товаров в корзине
Если массив
$carts пуст, результат будет null. Чтобы возвращать 0 вместо null, передайте начальное значение:Итог
Используйте функцию
array_reduce() для преобразования массива в одно значение с помощью callback-функции. Это удобно для вычислений по всем элементам массива с накоплением результата.
