CakePHP 2.x - Hash :: filter - 如何设置回调函数? // PHP过滤器

时间:2017-01-26 17:08:09

标签: php arrays cakephp filter

我想通过Hash :: filter过滤数组并使用回调函数

  

static Hash :: filter(array $ data,$ callback = array(' Hash',' filter'))

     

...您还可以提供自定义$回调来过滤数组元素......   (CakePHP Docs)

我的问题只是......怎么样?

也许我的翻译失败了,但我有JavaScript过滤功能,你可以过滤一个数组,并为过滤器函数提供迭代atm的实际元素。然后,如果它返回false,它将被踢出数组。

也许我只是对PHP很糟糕但是......有人可以帮我吗,拜托? :)

我的尝试atm就是这样的

$bis_datum = '2017-01-01';
$res = Hash::filter($multidim_assoc_array, function($part_of_multidim_assoc_array){
        return !strtotime($assoc_array['von_datum']) > strtotime($bis_datum);
});

我知道这里有一些非常错误,因为它是sais

  

数组('哈希','过滤')

在docs和theres中只是一个匿名函数,但是我没有得到什么" Hash"和"过滤"部分意思是:S

$example = array(

'User' => array(
    0 => array(
        'name' => 'Bob',
        'age' => 25
    ),
    1 => array(
        'name' => 'John',
        'age' => 22
    ),
    2 => array(
        'name' => 'Jen',
        'age' => 32
    )
)

'School' => array(
    'name' => 'Brainslaves High',
    'adress' => 'Somestreet 42'
)
);

作为一个简单的例子..我怎样才能过滤这个数组,以驱逐年龄低于25岁的所有人?

由于-A-很多!

1 个答案:

答案 0 :(得分:0)

Hash::filter无法帮助您举例,您最好直接使用array_filter

$res = array('User' => array_filter($example['User'], function($user) {
                    return $user['age'] > 25;
                })) + array('School' => $example['School']);