zoukankan      html  css  js  c++  java
  • 【PHP】 解决array_filter会过滤0 false的问题

    定义和用法

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

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

    语法:

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

    问题: 

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

    方法一: 直接使用:

    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  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")));
    }
    

      

  • 相关阅读:
    5.数组的使用,最值和反转
    4.下标越界及小结
    3.数组的三种初始化及简单内存分析
    html5版 音乐播放器
    百度网盘搜索
    HTML5扩展之微数据与丰富网页摘要
    Java 学习文章汇总
    业余草
    Catalan数
    Luogu P3004 [USACO10DEC]宝箱Treasure Chest
  • 原文地址:https://www.cnblogs.com/richerdyoung/p/11596781.html
Copyright © 2011-2022 走看看