【Laravel】Collectionの新機能percentage()使ってみた
初めまして、今年の7月からNextatに仲間入りしたおさむちゃんです。
Nextatではフルリモート、フレックスで開発に携わることができ、恵まれた環境で働くことができます。
今回はLaravel 10.19のアップデートで追加された、Illuminate\Support\Collectionのpercentageメソッドをご紹介します。
このメソッドは、真偽値を返すクロージャを使用して、カスタムロジックに基づいてパーセンテージを計算します。
結果として、それぞれ66.66と33.33が返されます。
デフォルトでは小数点以下2桁に丸めますが、以下のように第2引数で指定することもできます。
https://readouble.com/laravel/10.x/ja/collections.html#method-percentage
複雑な計算やフィルタリングを行う必要がなく、直感的に記載することができて便利ですよね。
ぜひ皆さんも使ってみてください。
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-0https://readouble.com/laravel/10.x/ja/collections.html#method-percentage
最後に
今回はpercentageメソッドを紹介させていただきました。複雑な計算やフィルタリングを行う必要がなく、直感的に記載することができて便利ですよね。
ぜひ皆さんも使ってみてください。