array_filter没有带有false值的strip键

时间:2014-02-07 11:01:15

标签: php arrays

我有这个数组:

[
  'a' => true,
  'b' => false,
  'c' = null,
  'd' = 'foo'
]

我只需要从null键中删除它,并保留所有其余的键。

[
  'a' => true,
  'b' => false,
  'd' = 'foo'
]

我尝试使用 array_filter ,但它甚至删除了false键,我该怎么办?

3 个答案:

答案 0 :(得分:3)

$filtered = array_filter($array, function ($value) { return $value !== null; });

答案 1 :(得分:2)

提供显式回调以测试null

$array = array_filter(
    $array,
    function ($value) {
        return $value !== null;
    }
);

答案 2 :(得分:0)

使用数组过滤器的回调函数

<?php
function stripnull($var)
{
    // returns whether the input integer is odd
    return $var !== null;
}


$array1 = array("a"=>true, "b"=>false, "c"=>null);