関数 array_reduce
関数 array_reduce は、コールバックを使用して
配列を単一の値に縮約(還元)します。
最初のパラメータとして配列を受け取り、 2番目のパラメータとして、配列の各要素に 順番に適用されるコールバックを受け取ります。
3番目のオプションパラメータは、
配列の縮約を開始する初期値です。
デフォルトではこのパラメータの値は
null です。
コールバック関数は2つの値をパラメータとして受け取ります。 最初の値には、前回のイテレーションの結果値が含まれます。 一方、最初のイテレーションでは、 3番目のパラメータの値が含まれます。
そして、コールバックの2番目の値には 配列の現在の要素が含まれます。
コールバックは配列の各要素に 順番に適用されます。現在のイテレーションで コールバックが返す値は、次のイテレーションでの コールバックの最初のパラメータに入ります。
このようにして、コールバックは順番に
配列の各要素に適用され、最終的に
ある値が得られます。この値が
関数 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,
配列の要素に対して再帰的に関数を呼び出す関数