我在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
。