【PHP】 解决array_filter会过滤0 false的问题

定义和用法

array_filter() 函数用回调函数过滤数组中的元素。数组

该函数把输入数组中的每一个键值传给回调函数。若是回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。函数

语法:this

array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
  •  array : 必需。规定要过滤的数组。
  •    callback : 可选。规定要用的回调函数
  •    flag   可选。决定 callback 接收的参数形式:

 

问题: blog

数据过滤空值时常会使用array_filter,但其默认会把0、false这样具体的值过滤掉。回调函数

 

方法一: 直接使用:io

function  filtrfunction($arr){
        if($arr === '' || $arr === null){
            return false;
        }
        return true;
    }

    $data = array(
        'a'=>1,
        'b'=>0,
        'c'=>'',
        'd'=>null,
        'e'=>5,
        'f'=>false
    );
    print_r(array_filter($data,'filtrfunction'));

  

方法二: 在类中使用:function

function  filtrfunction($arr){
        if($arr === '' || $arr === null){
            return false;
        }
        return true;
    }

function test(){
    $data = array(
        'a'=>1,
        'b'=>0,
        'c'=>'',
        'd'=>null,
        'e'=>5,
        'f'=>false
    );
    print_r(array_filter($data,array($this,"filterSinaList")));
}
相关文章
相关标签/搜索