A PHP class for fast iterables manipulation (arrays, generators, iterators).
All predicate / mutator callables receive the current value, current key and the whole collection as arguments.
map
& filter
do not execute immediately, but instead stack up until you need to get a value (calling squash
, toArray
, value
). Where possible helpers use map
& filter
in order to minimize RAM usage. This means that it is possible to iterate through a large file reading line by line while maintaining a minimal memory footprint.
Via Composer
composer require vakata/collection
$collection = \vakata\collection\Collection::from([1,2,3,4,5,6]);
$result = $collection
->filter(function ($v) { return $v % 2 === 0; })
->map(function ($v) { return $v + 1; })
->head(2)
->toArray();
Read more in the API docs
composer test
Please see CONTRIBUTING for details.
If you discover any security related issues, please email github@vakata.com instead of using the issue tracker.
A big thanks to im0rtality and the great Underscore package
The MIT License (MIT). Please see License File for more information.