- Laravel
array_reduceの使用例
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');
}
array_reduceの第二引数(コールバック部分)で足し合わせをしていて、第三引数の0は$totalPriceの初期値の0になります。
どちらが直感的にわかりやすいかは人それぞれだと思いますが、array_reduceを使用すると少しすっきりしますね。
以上、誰かの参考になれれば幸いです。