0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

array_reduceの使用例メモ

Posted at

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を使用すると少しすっきりしますね。

以上、誰かの参考になれれば幸いです。

0
0
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?