douxing1353 2015-02-16 02:49
浏览 20
已采纳

按键值参数过滤数组

I have an array as:

  $data = array(
      array('title'=>'test','rendor'=>0),
      array('title'=>'test2','rendor'=>1)
  );

What I am looking for is using one of the array functions to return the title key value when rendor is 1;

Currently im doing:

    $tmp = array();
    $deadTmp = array();
    foreach($tmpCols as $col){          
        if((int)$col['rendor'] !== 0){
            $tmp[] = $col;
        } else {
            $deadTmp[] = $col['title'];
        }
    }

I'm trying to learn the array functions.

  • 写回答

1条回答 默认 最新

  • douzuqin3467 2015-02-16 02:53
    关注

    An array_reduce will do:

    $titles = array_reduce($data, function (array $titles, array $datum) {
        if ($datum['rendor'] == 1) {
            $titles[] = $datum['title'];
        }
        return $titles;
    }, []);
    

    Alternatively:

    $titles = array_map(
        function ($datum) { return $datum['title']; }, 
        array_filter($data, function ($datum) { return $datum['render'] == 1; }
    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 phython如何实现以下功能?查找同一用户名的消费金额合并—
  • ¥15 ARIMA模型时间序列预测用pathon解决
  • ¥15 孟德尔随机化怎样画共定位分析图
  • ¥18 模拟电路问题解答有偿速度
  • ¥15 CST仿真别人的模型结果仿真结果S参数完全不对
  • ¥15 误删注册表文件致win10无法开启
  • ¥15 请问在阿里云服务器中怎么利用数据库制作网站
  • ¥60 ESP32怎么烧录自启动程序,怎么查看客户esp32板子上程序及烧录地址
  • ¥50 html2canvas超出滚动条不显示
  • ¥15 java业务性能问题求解(sql,业务设计相关)