首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查关联数组是否为空或null值

如何检查关联数组是否为空或null值
EN

Stack Overflow用户
提问于 2013-05-10 03:50:20
回答 5查看 62K关注 0票数 29

在下面的关联数组中

代码语言:javascript
复制
$array = array(
    [0] => 0
    [1] => 1
    [2] => 
    [3] => 2
    [4] => 
)

如何确定给定的键是否具有空(或null)值?我用过

代码语言:javascript
复制
if(empty($array[$value])) 

代码语言:javascript
复制
if(isset($array[$value])) && $array[$value] !=='')

在使用empty时,我也会为第一个数组值获取false,该值为零,而isset似乎无法做到这一点。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-05-10 03:54:24

为此,请使用array_key_exists()is_null()。如果键存在并且值远离NULL,它将返回TRUE

区别:

代码语言:javascript
复制
$arr = array('a' => NULL);

var_dump(array_key_exists('a', $arr)); // -->  TRUE
var_dump(isset($arr['a'])); // -->  FALSE

所以你应该检查一下:

代码语言:javascript
复制
if(array_key_exists($key, $array) && is_null($array[$key])) {
    echo "key exists with a value of NULL";
}
票数 37
EN

Stack Overflow用户

发布于 2014-10-31 14:54:59

我看了所有的答案,但我不喜欢。这不是更简单更好吗?这就是我正在使用的:

代码语言:javascript
复制
  if (in_array(null, $array, true) || in_array('', $array, true)) {
    // There are null (or empty) values.
  }

请注意,将第三个参数设置为true意味着严格比较,这意味着0不等于null -然而,空字符串('')也不等于-这就是为什么我们有两个条件。不幸的是,in_array中的第一个参数必须是字符串,而不能是值数组。

票数 22
EN

Stack Overflow用户

发布于 2013-05-10 04:08:35

代码语言:javascript
复制
if ( !isset($array[$key]) || $array[$key] == "" || is_null($array[$key]) )
{
    //given key does not exist or it has "" or NULL value
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16469947

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档