array_reduceはPHPの組み込み関数です。
・PHP公式はこちら
https://www.php.net/manual/en/function.array-reduce.php
関数の詳細説明は公式におまかせするとして、この記事ではこんな使用例があったというメモです。
例えば下記のようなコードを書いたとします。
public function getAmountIncludingTax(array $postings)
{
$totalPrice = 0;
foreach ($postings as $postings) {
$totalPrice += $postings->price;
}
return compact('totalPrice');
}
あるクラスの中にあるメソッドだけを切り取ってます。
$totalPrice
を初期値で設定して$positngs
をループで回して、priceカラムを足し合わせるといったものです。
これを下記のようにarray_reduceで書くことができます。
public function getAmountIncludingTax(array $postings)
{
$totalPrice = array_reduce($postings, function ($sum, $posting) {
return $sum + $posting->price;
}, 0);
return compact('totalPrice');
}
第二引数(コールバック部分)で足し合わせをしていて、第三引数の0
は$totalPrice
の初期値の0
になります。
どちらが直感的にわかりやすいかは人それぞれだと思いますが、array_reduceを使用すると少しすっきりしますね。
以上、誰かの参考になれれば幸いです。