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