我有这个小函数来通过键过滤我的数组:
private function filterMyArray( )
{
function check( $v )
{
return $v['type'] == 'video';
}
return array_filter( $array, 'check' );
}这很有效,但是因为我有更多的键要过滤,所以我想从主函数中传递一个变量:filterMyArray($key_to_serch),但没有成功,我也尝试了一个全局变量,但似乎不起作用。
由于我的问题中有一些混乱:),我需要这样的东西:
private function filterMyArray( $key_to_serch )
{
function check( $v )
{
return $v['type'] == $key_to_serch;
}
return array_filter( $array, 'check' );
}有没有办法传递这个变量?
发布于 2011-12-09 09:39:48
这就是PHP5.3中的匿名函数派上用场的地方(注意use的使用):
private function filterMyArray($key)
{
return array_filter(
$array,
function check($v) use($key) {
return $v['type'] == $key;
}
);
}发布于 2011-12-09 09:41:13
private function filterMyArray($key_to_search) {
function check( $v ) {
return $v[$key_to_search] == 'video';
}
return array_filter( $array, 'check' );
}应该可以工作,因为内部函数可以访问外部函数中的变量
发布于 2011-12-09 09:41:48
您需要使用use关键字来获取作用域c.f中的变量。这个example in php's doc。
https://stackoverflow.com/questions/8440073
复制相似问题