array_filter带有回调函数

时间:2011-09-02 21:55:22

标签: php arrays anonymous-function array-filter

$thisQuestion = array_filter($pollQuestions,function($q) use ($questDataArr){
                      return $questDataArr[0] == $q["id"];
                    });

因为我在这里使用2个变量,所以我使用了这个内联函数。如何创建回调函数并传递额外参数?

1 个答案:

答案 0 :(得分:2)

如果我理解你的问题:

  • 您不想使用匿名函数
  • 你需要一个保持某种状态的功能

解决方案是创建一个类:

class MyCallback {
    private $questDataArr;
    public function __construct($questDataArr) {
        $this->questDataArr = $questDataArr;
    }
    function callback($q) {
        return $this->questDataArr[0] == $q["id"];
    }
}

array_filter($pollQuestions, array(new MyCallback($questDataArr), 'callback'));