Функцыя 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
,
якая рэкурсіўна выклікае функцыю для элементаў масіва