graze / array-filter
File manipulation
v1.0.1
2016-02-23 13:19 UTC
Requires
- php: >=5.6.0
Requires (Dev)
- mockery/mockery: ^0.9.4
- phpunit/phpunit: 5.*
- squizlabs/php_codesniffer: ^2.5
This package is auto-updated.
Last update: 2024-11-29 04:46:45 UTC
README
Array Filtering
Install
Via Composer
$ composer require graze/array-filter
Usage
Filter Factory
There is a factory which takes in a set of string definitions and creates filters based on each one
$config = [ 'name ~' => '/test.*/i', 'ctime >' => '{date:yesterday:U}', 'status in' => [1, 2], ]; $input = [[ 'name' => 'test1234', 'ctime' => 142353782, 'status' => 2, ]]; $factory = new FilterFactory(new ValueFactory()); $filter = $factory->createFilters($config); $filtered = array_filter($input, $filter);
Respect/Validator and other callable functions Compatible
$filter = new AllOfFilter();
$filter->addFilter(new ClosureFilter('name', v::regex('/test.*/i')))
->addFilter(v::key('ctime', v::date()->between('yesterday', 'today'))
->addFilter(function (array $data) {
return isset($data['status']) && in_array($data['status'], [1, 2]);
});
$filtered = array_filter($input, $filter);
Testing
$ make
$ make test
Contributing
Please see CONTRIBUTING for details.
Security
If you discover any security related issues, please email security@graze.com instead of using the issue tracker.
Credits
License
The MIT License (MIT). Please see License File for more information.