開発ブログ

株式会社Nextatのスタッフがお送りする技術コラムメインのブログ。

電話でのお問合わせ 075-744-6842 ([月]-[金] 10:00〜17:00)

  1. top >
  2. 開発ブログ >
  3. PHP >
  4. Laravel >
  5. 【Laravel】Collectionの新機能percentage()使ってみた
no-image

【Laravel】Collectionの新機能percentage()使ってみた

初めまして、今年の7月からNextatに仲間入りしたおさむちゃんです。
Nextatではフルリモート、フレックスで開発に携わることができ、恵まれた環境で働くことができます。

今回はLaravel 10.19のアップデートで追加された、Illuminate\Support\Collectionのpercentageメソッドをご紹介します。

環境

  • PHP: 8.2
  • Laravel Framework: 10.19

percentageメソッドとは

percentageメソッドは、コレクション内のアイテムが指定した条件を満たす割合を計算する新機能です。
このメソッドは、真偽値を返すクロージャを使用して、カスタムロジックに基づいてパーセンテージを計算します。

使い方

以下はpercentageメソッドの基本的な使用例です。
$users = collect([
    ['name' => 'おさむちゃん', 'age' => 18],
    ['name' => 'かっちゃん', 'age' => 30],
    ['name' => 'もりりん', 'age' => 34],
]);

$users->percentage(fn ($user) => $user['age'] >= 30); // 66.66
$users->percentage(fn ($user) => $user['age'] < 20); // 33.33
上記の例では、ageキーの値が30以上のユーザーの割合と20未満のユーザーの割合をそれぞれ計算しています。
結果として、それぞれ66.66と33.33が返されます。
デフォルトでは小数点以下2桁に丸めますが、以下のように第2引数で指定することもできます。
$users->percentage(fn ($user) => $user['age'] < 20, precision: 3); // 33.333
​なお、コレクションが空の場合はnullが返されます。

参考

https://laravel-news.com/laravel-10-19-0
https://readouble.com/laravel/10.x/ja/collections.html#method-percentage

最後に

今回はpercentageメソッドを紹介させていただきました。
複雑な計算やフィルタリングを行う必要がなく、直感的に記載することができて便利ですよね。
ぜひ皆さんも使ってみてください。
TOPに戻る