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ֆունկցիան,
որը ռեկուրսիվ կանչում է ֆունկցիա զանգվածի տարրերի համար