array_reduce

コールバック関数を繰り返し配列に適用し、配列をひとつの値にまとめる

説明

mixed array_reduce(array $array, callable $callback, mixed $initial = null)

array_reduce は、配列 array の各要素に callback 関数を繰り返し適用し、 配列をひとつの値にまとめます。

パラメータ

array

入力の配列。

callback
mixed callback(mixed $carry, mixed $item)
carry

前回の反復処理の結果を保持します。最初の反復処理のときには、 initial の値を保持しています。

item

現在の反復処理の値を保持します。

initial

オプションの intial が利用可能な場合、処理の最初で使用されたり、 配列が空の場合の最終結果として使用されます。

戻り値

結果の値を返します。

配列が空で initial が渡されなかった場合は、 array_reducenull を返します。

変更履歴

バージョン 説明
8.0.0 callback がリファレンス渡しされる引数を期待している場合、 この関数は E_WARNING を発生させるようになりました。

例1 array_reduce の例

<?php
function sum($carry, $item)
{
    $carry += $item;
    return $carry;
}

function product($carry, $item)
{
    $carry *= $item;
    return $carry;
}

$a = array(1, 2, 3, 4, 5);
$x = array();

var_dump(array_reduce($a, "sum")); // int(15)
var_dump(array_reduce($a, "product", 10)); // int(1200), because: 10*1*2*3*4*5
var_dump(array_reduce($x, "sum", "No data to reduce")); // string(17) "No data to reduce"
?>

参考

  • array_filter
  • array_map
  • array_unique
  • array_count_values