twig-group
Twig filter that splits an array into a given number of groups. This is different than the built-in batch filter, which splits the array based on a given number of items per group.., (*1)
, (*2)
Installation
The filter is registered at Packagist as cviebrock/twig-group and can be installed using composer:, (*3)
composer require cviebrock/twig-group
Or just download the zip file and copy the file into your src folder., (*4)
Enable the extension:, (*5)
$twig = new Twig_Environment($loader, $options);
$twig->addExtension(new Cviebrock\Twig\GroupExtension());
If you are using Laravel and rcrowe/twigbridge, then enable the extension by adding an entry to the enabled array in app/config/packages/rcrowe/twigbridge/extensions.php:, (*6)
'enabled' => [
...
'Cviebrock\Twig\GroupExtension',
],
Usage
Assume we are starting with the following array:, (*7)
[ 'John', 'Jane', 'Bill', 'Bob', 'Mary' ]
Pass the array and number of groups to the filter:, (*8)
{{ array | group(2) }} // [ ['John', 'Jane', 'Bill'], ['Bob', 'Mary'] ]
{{ array | group(3) }} // [ ['John', 'Jane'], ['Bill', 'Bob'], ['Mary'] ]
Optionally pass a second parameter which will pad out all the arrays so they have the same number of elements (similar to how the built-in batch filter pads arrays:, (*9)
{{ array | group(2, '-empty-') }} // [ ['John', 'Jane', 'Bill'], ['Bob', 'Mary', '-empty-'] ]
{{ array | group(3, '-empty-') }} // [ ['John', 'Jane'], ['Bill', 'Bob'], ['Mary', '-empty-'] ]
Bugs, Suggestions and Contributions
Please use Github for bugs, comments, suggestions., (*10)
- Fork the project.
- Create your bugfix/feature branch and write your (well-commented) code.
- Commit your changes and push to your repository.
- Create a new pull request against this project's
master branch.
Copyright and License
twig-group was written by Colin Viebrock and released under the MIT License. See the LICENSE file for details., (*11)
Copyright 2015 Colin Viebrock, (*12)