PHP的array_filter怎么不过滤一维数组中的0

  • 内容
  • 评论
  • 相关
array_filter()处理一维数组,过滤后的数组下标不会重置,可以用回调函数过滤数组中的元素。
该函数把输入数组中的每个键值传给回调函数。如果回调函数返回 true,则把输入数组中的当前键值返回给结果数组。数组键名保持不变。
语法:
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )


array : 必需。规定要过滤的数组。
callback : 可选。规定要用的回调函数
flag 可选。决定 callback 接收的参数形式

 
问题:
数据过滤空值时常会使用array_filter,但其默认会把0、false这样具体的值过滤掉。
第一种方法:直接使用

function  filterfunction($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,'filterfunction'));
 




本文标签:

版权声明:若无特殊注明,本文皆为《菜鸟站长》原创,转载请保留文章出处。

本文链接:PHP的array_filter怎么不过滤一维数组中的0 - http://wlphp.com/?post=302

发表评论

电子邮件地址不会被公开。 必填项已用*标注

福利广告

Fatal error: Uncaught exception 'RedisException' with message 'WRONGPASS invalid username-password pair' in /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php:264 Stack trace: #0 /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php(264): Redis->auth('Bsgj0711!') #1 /www/wwwroot/www.wlphp.com/content/templates/FLY/echo_log.php(133): include('/www/wwwroot/ww...') #2 /www/wwwroot/www.wlphp.com/include/controller/log_controller.php(105): include('/www/wwwroot/ww...') #3 /www/wwwroot/www.wlphp.com/include/lib/dispatcher.php(77): Log_Controller->displayContent(Array) #4 /www/wwwroot/www.wlphp.com/index.php(13): Dispatcher->dispatch() #5 {main} thrown in /www/wwwroot/www.wlphp.com/content/templates/FLY/footer.php on line 264