2011-02-17 65 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