関数 array_reduce

関数 array_reduce は、コールバックを使用して 配列を単一の値に縮約(還元)します。

最初のパラメータとして配列を受け取り、 2番目のパラメータとして、配列の各要素に 順番に適用されるコールバックを受け取ります。

3番目のオプションパラメータは、 配列の縮約を開始する初期値です。 デフォルトではこのパラメータの値は null です。

コールバック関数は2つの値をパラメータとして受け取ります。 最初の値には、前回のイテレーションの結果値が含まれます。 一方、最初のイテレーションでは、 3番目のパラメータの値が含まれます。

そして、コールバックの2番目の値には 配列の現在の要素が含まれます。

コールバックは配列の各要素に 順番に適用されます。現在のイテレーションで コールバックが返す値は、次のイテレーションでの コールバックの最初のパラメータに入ります。

このようにして、コールバックは順番に 配列の各要素に適用され、最終的に ある値が得られます。この値が 関数 array_reduce の結果となります。

構文

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

例

配列の要素の合計を求めてみましょう:

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

コードの実行結果:

php15

関連項目

  • 関数 array_map,
    配列の要素に関数を適用する関数
  • 関数 array_walk,
    配列の要素に対して関数を呼び出す関数
  • 関数 array_filter,
    配列をフィルタリングする関数
  • 関数 array_walk_recursive,
    配列の要素に対して再帰的に関数を呼び出す関数