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
array_reduce(array $array, callable $callback, mixed $initial = null): mixed
Näide
Leiame massiivi elementide summa:
<?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:
15
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