查找阵列在PHP中是否为空



我在PHP中有一个数组,我必须检查它是否为空。

    $length = count($array_new);
    if(empty($array_new)) 
        echo("Array is empty");
    else
        echo("Array is not empty");
    echo("n");
    print_r($array_new);
    echo("Length of array is".$length);

输出是 -

Array is not empty
Array
(
    [0] =>
    [1] =>
    [2] =>
    [3] =>
)
Length of array is 4

我知道数组是空的,那为什么它表明数组的长度为4?谁能告诉我这里有什么问题?

您的数组不是空的,您分配了4个没有值的键。

empty($array_new)    // false
empty($array_new[0]) // true

从数组中删除空值:

$filtered = array_filter($array_new, function ($var) {
    return !is_null($var);
});

文档:

  • 空()
  • array_filter()

您的数组不是空的,它们只有为这些索引分配的空值。

来自http://php.net/manual/en/function.empty.php:

以下内容被认为是空的:

"(一个空字符串)
0(0作为整数)
0.0(0作为浮子)
0&quot&quot(0作为字符串)
null
false
Array()(一个空数组)
$ var;(声明的变量,但没有值)

当前您的数组等效于array(null, null, null, null);

您没有具有4个空值的空数组。当数组长度为0时,empty($array)返回true

最新更新