Funkcija array_reduce

Funkcija array_reduce sumažina (redukuoja) masyvą iki vienos reikšmės, naudojant atgalinį kvietimą.

Pirmuoju parametru funkcija priima masyvą, antruoju - atgalinį kvietimą, kuris bus paeiliui taikomas kiekvienam masyvo elementui.

Trečiasis neprivalomas parametras yra pradinė reikšmė, nuo kurios prasidės masyvo sumažinimas. Pagal nutylėjimą šis parametras turi reikšmę null.

Funkcija-atgalinis kvietimas parametrais gauna dvi reikšmes. Pirmoji reikšmė talpina rezultatinę reikšmę iš ankstesnės iteracijos. Pirmosios iteracijos atveju talpina reikšmę trečiojo parametro.

O antroji atgalinio kvietimo reikšmė talpina dabartinį masyvo elementą.

Atgalinis kvietimas paeiliui bus taikomas kiekvienam masyvo elementui. Tai, ką grąžins dabartinėje iteracijoje atgalinis kvietimas, pateks į pirmąjį atgalinio kvietimo parametrą sekančioje iteracijoje.

Taigi, atgalinis kvietimas nuosekliai bus taikomas kiekvienam masyvo elementui paeiliui ir galų gale bus gauta kokia nors reikšmė. Ši reikšmė ir bus funkcijos array_reduce rezultatas.

Sintaksė

phparray_reduce(array $array, callable $callback, mixed $initial = null): mixed

Pavyzdys

Raskime masyvo elementų sumą:

php<?php
  $arr = [1, 2, 3, 4, 5];
  
  function func($prev, $elem)
  {
    return $prev + $elem;
  }
  
  $res = array_reduce($arr, 'func', 0);
  echo $res;
?>

Kodo vykdymo rezultatas:

php15

Taip pat žiūrėkite

  • funkciją array_map,
    kuri taiko funkciją masyvo elementams
  • funkciją array_walk,
    kuri iškviečia funkciją masyvo elementams
  • funkciją array_filter,
    kuri filtravo masyvą
  • funkciją array_walk_recursive,
    kuri rekursyviai iškviečia funkciją masyvo elementams