This package houses some macros that extend the Laravel
Collection
. It currently only contains one, pluckThenGroupBy
You can install the package via composer:
composer require anthony-dee/collection-macros
A combination of the native groupBy
and pluck
methods. It takes up to three keys and at least two. The first is the $groupBy
key, the second ($pluckValue
) is value to pluck and the third, if given, is used to key the plucked values.
A good use for this is to prepare a collection to be used as a data source for optgroup
labels and option
values and text.
$collection = collect([
['id' => 1, 'name' => 'Lesson 1', 'module' => 'Basics', 'reward' => 'gold'],
['id' => 2, 'name' => 'Lesson 2', 'module' => 'Basics', 'reward' => 'silver'],
['id' => 3, 'name' => 'Lesson 3', 'module' => 'Advanced', 'reward' => 'silver'],
['id' => 4, 'name' => 'Lesson 4', 'module' => 'Advanced', 'reward' => 'gold'],
['id' => 5, 'name' => 'Lesson 4', 'module' => 'Advanced', 'reward' => 'silver'],
]);
$collection->pluckThenGroupBy('module', 'reward', 'name');
// [
// "Basics" => [
// "Lesson 1" => "gold"
// "Lesson 2" => "silver"
// ]
// "Advanced" => [
// "Lesson 3" => "silver"
// "Lesson 4" => "silver"
// ]
// ]
Please see CONTRIBUTING for details.
- [Anthony Douglas](https://github.com/ anthony-dee)
- All Contributors
The MIT License (MIT). Please see License File for more information.
This package was generated using the Laravel Package Boilerplate.