在下面的关联数组中
$array = array(
[0] => 0
[1] => 1
[2] =>
[3] => 2
[4] =>
)
如何确定给定的键是否具有空(或null)值?我用过
if(empty($array[$value]))
和
if(isset($array[$value])) && $array[$value] !=='')
在使用empty
时,我也会为第一个数组值获取false
,该值为零,而isset
似乎无法做到这一点。
发布于 2013-05-10 03:54:24
为此,请使用array_key_exists()
和is_null()
。如果键存在并且值远离NULL
,它将返回TRUE
区别:
$arr = array('a' => NULL);
var_dump(array_key_exists('a', $arr)); // --> TRUE
var_dump(isset($arr['a'])); // --> FALSE
所以你应该检查一下:
if(array_key_exists($key, $array) && is_null($array[$key])) {
echo "key exists with a value of NULL";
}
发布于 2014-10-31 14:54:59
我看了所有的答案,但我不喜欢。这不是更简单更好吗?这就是我正在使用的:
if (in_array(null, $array, true) || in_array('', $array, true)) {
// There are null (or empty) values.
}
请注意,将第三个参数设置为true意味着严格比较,这意味着0不等于null -然而,空字符串('')也不等于-这就是为什么我们有两个条件。不幸的是,in_array中的第一个参数必须是字符串,而不能是值数组。
发布于 2013-05-10 04:08:35
if ( !isset($array[$key]) || $array[$key] == "" || is_null($array[$key]) )
{
//given key does not exist or it has "" or NULL value
}
https://stackoverflow.com/questions/16469947
复制相似问题