Функция array_reduce
Функцията array_reduce свива (редуцира)
масив към една стойност, използвайки callback функция.
В първия параметър функцията приема масив, във втория - callback функция, която ще бъде прилагана последователно към всеки елемент на масива.
В третия незадължителен параметър
се подава начална стойност, от която
ще започне свиването на масива.
По подразбиране този параметър има
стойност null.
Callback функцията получава като параметри две стойности. Първата стойност съдържа резултатната стойност от предишната итерация. При първата итерация съдържа стойността на третия параметър.
А втората стойност на callback функцията съдържа текущия елемент на масива.
Callback функцията последователно ще се прилага към всеки елемент на масива. Това, което върне на текущата итерация callback функцията, ще попадне в първия параметър на callback функцията на следващата итерация.
По този начин, callback функцията последователно
ще се приложи към всеки елемент на масива
последователно и в крайна сметка ще се получи някаква
стойност. Тази стойност ще бъде резултатът
от работата на функцията 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,
която рекурсивно извиква функция за елементите на масив