Php 使用in_数组时如何区分0和FALSE

Php 使用in_数组时如何区分0和FALSE,php,Php,我有一个函数来过滤数组中不需要的值(通常是假值和空值),它是: function filter_array($arr , $filter = array('' , FALSE)){ foreach($arr as $k=>$v) { if(in_array(trim($v) , $filter)) unset($arr[$k]); } return $arr; } 问题是,它将0视为false并将它们从数组中删除。。

我有一个函数来过滤数组中不需要的值(通常是假值和空值),它是:

function filter_array($arr ,  $filter = array('' , FALSE)){

    foreach($arr as $k=>$v)
    {
        if(in_array(trim($v) , $filter)) 
        unset($arr[$k]);
    }

    return $arr;
}
问题是,它将
0
视为
false
并将它们从数组中删除。。。我怎样才能解决这个问题

一种方法是通过
$filter
循环,并使用
==
检查值,但我想避免另一个循环

使用第三个可选参数进行严格比较

in_array(trim($v) , $filter, true)
. 第三个论点是严格的比较。