Funktsioon array_reduce

Funktsioon array_reduce redutseerib massiivi üheks väärtuseks, kasutades tagasikutset.

Esimeses parameetris võtab funktsioon vastu massiivi, teises - tagasikutse, mida rakendatakse kordamööda iga massiivi elemendi peale.

Kolmandas valikulises parameetris on algväärtus, millest massiivi redutseerimine alustatakse. Vaikimisi on sellel parameetril väärtus null.

Tagasikutsefunktsioon saab parameetriteks kaks väärtust. Esimene väärtus sisaldab eelmise iteratsiooni tulemusväärtust. Esimesel iteratsioonil sisaldab see kolmanda parameetri väärtust.

Ja teine tagasikutse väärtus sisaldab jooksvat massiivi elementi.

Tagasikutset rakendatakse kordamööda iga massiivi elemendi peale. See, mida tagasikutse praegusel iteratsioonil tagastab, läheb tagasikutse esimesse parameetrisse järgmisel iteratsioonil.

Seega rakendub tagasikutse järjest igale massiivi elemendile kordamööda ja lõpuks saadakse mingi väärtus. See väärtus ongi funktsiooni array_reduce tulemuseks.

Süntaks

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

Näide

Leiame massiivi elementide summa:

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

Koodi täitmise tulemus:

php15

Vaata ka

  • funktsiooni array_map,
    mis rakendab funktsiooni massiivi elementidele
  • funktsiooni array_walk,
    mis kutsub välja funktsiooni massiivi elementide jaoks
  • funktsiooni array_filter,
    mis filtreerib massiivi
  • funktsiooni array_walk_recursive,
    mis rekursiivselt kutsub välja funktsiooni massiivi elementide jaoks