$arr = array(
array(
'catid' => 2,
'catdir' => 'notice',
),
array(
'catid' => 5,
'catdir' => 'subject',
),
array(
'catid' => 6,
'catdir' => 'news'
),
);
$catid = 5;
$res = array_filter($arr, function($param) use ($catid) {
return $param['catid'] == $catid;
});
print_r($res);
我现在的代码输出的是如下一个二级数组
array(1) {
[1]=>
array(2) {
["catid"]=>
int(5)
["catdir"]=>
string(7) "subject"
}
}
我想要输出如下格式
array(2) {
["catid"]=>
int(5)
["catdir"]=>
string(7) "subject"
}
另外我对闭包函数不太明白,还有如下问题
1、$param和$catid这两个变量分别做什么用的
2、use在这里又是做什么用的
use
的作用是继承变量,讲简单点就是使用外面的变量,你定义一个方法时可以通过传参数的方式,但是如果你使用一个匿名方法,就没法传参数了,就用use
,等同于传参数