Php 我可以在类数组上使用array_filter()吗?

Php 我可以在类数组上使用array_filter()吗?,php,arrays,oop,Php,Arrays,Oop,我正在尝试截取并过滤类集合数组中的项,$this->\u vars,在Smarty的精简版本中(不是我的选择:|) 以下是我一直尝试使用的: 类回调函数 private function callback_check($var){ if(!in_array($var['link_id'], $this->returned_array['items'])) return false; else return true; } 以及阵列过滤器本身: foreach($this-

我正在尝试截取并过滤类集合数组中的项,$this->\u vars,在Smarty的精简版本中(不是我的选择:|)

以下是我一直尝试使用的:

类回调函数

private function callback_check($var){
    if(!in_array($var['link_id'], $this->returned_array['items'])) return false;
    else return true;
}
以及阵列过滤器本身:

foreach($this->_vars['content']['documents'] as $group_key => $link_groups){
    array_filter($this->_vars['content']['documents'][$group_key]['links'], array(&$this, "callback_check"));
}

现在,它似乎在检测数组中哪些在,哪些不在,因为我将返回的内容替换为要检查的打印内容。但是,没有从阵列中删除任何内容。有什么方法可以做我正在尝试的事情,或者我错过了一些明显的事情吗?

我想你错过了一些明显的事情;)

array\u filter()
不就地过滤数组,它返回一个新的过滤数组。给定您的代码片段,您不使用返回的数组。试着这样做:

foreach($this->_vars['content']['documents'] as $group_key => $link_groups){
    $filtered_array = array_filter($this->_vars['content']['documents'][$group_key]['links'], array(&$this, "callback_check"));
    $this->_vars['content']['documents'][$group_key]['links'] = $filtered_array;
}

*我想我一定错过了什么。非常感谢!:D