2011-02-17 89 views
0
class MyClass { 
    private function isExist($arr) { 
     // need to do some formatting here first 

     // need to call in_array here to check whether to filter out duplicates 
     return false; // temporary return value 
    } 

    public function test() { 
     $data = array(
      array('foo' => 'alpha', 'bar' => 'bravo'), 
      array('foo' => 'charlie', 'bar' => 'delta'), 
      array('foo' => 'alpha', 'bar' => 'bravo'), 
     ); 

     $result = array_filter($data, array('MyClass', 'isExist')); 
     print_r($result); 
    } 
} 

$obj = new MyClass(); 
$obj->test(); 

如何访问在回调函数内被过滤的数组?是否有可能将一个或两个参数传递给回调函数?array_filter的回调函数

我有PHP 5.3.1,以防万一你需要知道我使用的版本。

编辑: //独立的格式,然后调用array_unique

+0

array_filter迭代,并调用回电话。你不能传递另一个参数。 您是否试图在$ data中找到唯一条目?即,您是否希望$ result包含$ data的第一个和第二个条目,但不包含第三个条目(因为它与第一个条目相同)? – qbert220 2011-02-17 13:16:35

+0

“您是否希望$ result包含$ data的第一个和第二个条目,但不是第三个条目(因为它与第一个条目相同)?” - 是的,基本上即时通讯设法删除重复的项目 – madkris24 2011-02-17 13:25:11

回答

0

尝试

class MyClass { 

    ... 

    public function test() { 
     $data = array(
      array('foo' => 'alpha', 'bar' => 'bravo'), 
      array('foo' => 'charlie', 'bar' => 'delta'), 
      array('foo' => 'alpha', 'bar' => 'bravo'), 
     ); 

     $result = array_filter($data, array('MyClass', 'isExist')); 
     return $result; 
    } 
} 

$obj = new MyClass(); 
$array_filterd = $obj->test(); 
+0

即时通讯对不起,这个问题可能是误导。我已编辑过,请好好看看。 – madkris24 2011-02-17 13:20:57