为了账号安全,请及时绑定邮箱和手机立即绑定

PHP如何用array_filter过滤数组?

PHP如何用array_filter过滤数组?

汪汪一只猫 2019-01-29 10:05:48
Array(    [0] => Array        (            [id] => 1            [name] => 你好,234            [cate] =>  生活日记       )    [1] => Array        (            [id] => 2            [name] => 79798            [cate] => 摄影美图        )    [2] => Array        (            [id] => 3            [name] => 567567            [cate] =>  生活日记       ))过滤里面cate = 摄影美图,其它全部保留,效果是Array(   [0] => Array       (           [id] => 1           [name] => 你好,234           [cate] =>  生活日记       )   [1] => Array       (           [id] => 2           [name] => 79798           [cate] => 生活日记      ))如何用array_filter实现呢? 感觉array_filter不太好用。
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

啥也不说,直接上代码,可惜php的闭包跟js一样又臭又长:

$data = [

   [ 'id' => 1, 'name' => '你好,234', 'cate' => '生活日记'],

   [ 'id' => 2, 'name' => '79798', 'cate' => '摄影美图'],

   [ 'id' => 3, 'name' => '567567', 'cate' => '生活日记'],

];


$filtered = array_filter($data, function($item){ 

                 return $item['cate'] !== '摄影美图'; 

            });

print_r($filtered);


查看完整回答
反对 回复 2019-03-16
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

注意看array_filter的第二个参数,第二个参数是一个自定义函数。这个自定义函数是为了设置过滤条件。

<?php

    $arr = array(

        array('id'=>1, 'cate'=>"生活日记"),

        array('id'=>2, 'cate'=>"摄影美图"),

    );

    var_dump($arr);

    

    function filter($rows){

        if($rows['cate']==="摄影美图"){

            return false;

        }else{

            return true;

        }

    }

    

    $arr = array_filter($arr, 'filter');

    var_dump($arr);


查看完整回答
反对 回复 2019-03-16
?
阿波罗的战车

TA贡献1862条经验 获得超6个赞

我觉得不用array_filter也能达到目的呀

<?php   

   $oriArr = array(

       0 => array('id' => '1', 'name' => '你好,234', 'cate' => '生活日记'),

       1 => array('id' => '2', 'name' => '79798', 'cate' => '摄影美图'),

       2 => array('id' => '3', 'name' => '567567', 'cate' => '生活日记'),

   );


   $resultArr = array();

   foreach ($oriArr as $key => $value)

   {

       if ($value['cate'] === '摄影美图')

       {

           continue;

       }

       else

       {

           $resultArr[] = $value;

       }

   }

   print_r($resultArr);


查看完整回答
反对 回复 2019-03-16
  • 3 回答
  • 0 关注
  • 9046 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信