首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >按键过滤数组

按键过滤数组
EN

Stack Overflow用户
提问于 2011-12-09 09:37:52
回答 4查看 3K关注 0票数 0

我有这个小函数来通过键过滤我的数组:

代码语言:javascript
运行
复制
 private function filterMyArray( )
 {
      function check( $v )
      {
           return $v['type'] == 'video';
      }
      return array_filter( $array, 'check' );
 }

这很有效,但是因为我有更多的键要过滤,所以我想从主函数中传递一个变量:filterMyArray($key_to_serch),但没有成功,我也尝试了一个全局变量,但似乎不起作用。

由于我的问题中有一些混乱:),我需要这样的东西:

代码语言:javascript
运行
复制
 private function filterMyArray( $key_to_serch )
 {
      function check( $v )
      {
           return $v['type'] == $key_to_serch;
      }
      return array_filter( $array, 'check' );
 }

有没有办法传递这个变量?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-09 09:39:48

这就是PHP5.3中的匿名函数派上用场的地方(注意use的使用):

代码语言:javascript
运行
复制
private function filterMyArray($key)
{
     return array_filter(
         $array,
         function check($v) use($key) {
             return $v['type'] == $key;
         }
     );
}
票数 3
EN

Stack Overflow用户

发布于 2011-12-09 09:41:13

代码语言:javascript
运行
复制
private function filterMyArray($key_to_search) {
  function check( $v ) {
       return $v[$key_to_search] == 'video';
  }
  return array_filter( $array, 'check' );
}

应该可以工作,因为内部函数可以访问外部函数中的变量

票数 0
EN

Stack Overflow用户

发布于 2011-12-09 09:41:48

您需要使用use关键字来获取作用域c.f中的变量。这个example in php's doc

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8440073

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档