graze/array-filter

v1.0.1 2016-02-23 13:19 UTC

This package is auto-updated.

Last update: 2024-08-29 04:03:29 UTC


README

Latest Version on Packagist Software License Build Status Coverage Status Quality Score Total Downloads

数组过滤

安装

通过 Composer

$ composer require graze/array-filter

用法

过滤器工厂

有一个工厂可以接收一系列字符串定义,并根据每个定义创建过滤器

$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 和其他可调用函数

$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);

测试

$ make
$ make test

贡献

请参阅CONTRIBUTING 了解详情。

安全性

如果您发现任何与安全性相关的问题,请通过security@graze.com 发送电子邮件,而不是使用问题跟踪器。

致谢

许可

MIT 许可证 (MIT)。请参阅许可文件 了解更多信息。