PHP - 检查数组索引是不是存在或为空
Posted
技术标签:
【中文标题】PHP - 检查数组索引是不是存在或为空【英文标题】:PHP - Checking if array index exist or is nullPHP - 检查数组索引是否存在或为空 【发布时间】:2013-02-24 22:58:59 【问题描述】:有没有办法检查数组索引是否存在或为空?
isset()
不会告诉您索引是不存在还是存在但为空。
如果我这样做:isset($array[$index]) || is_null($array[$index])
它不会工作,因为如果索引不存在 is_null 会崩溃。
请问我该如何检查?还有一种方法可以只检查某些东西是否存在,无论它是否设置为 null?
【问题讨论】:
嵌套 if 结构中的 if 语句不能正常工作吗? "array_key_exists 肯定可以解决问题。"这就是答案..好.. +1 给你 您应该回答这个问题,然后将其标记为已解决。否则它看起来总是一个悬而未决的问题。 两天前无法接受自己的回答^^ 【参考方案1】:函数array_key_exists() 可以做到这一点,property_exists() 用于对象,加上 Vineet1982 所说的。感谢您的帮助。
【讨论】:
不推荐在对象上使用 array_key_exists()。 @Asish 没有人说应该这样做。这个问题已经有 8 年历史了,所以很明显事情会发生变化。 是的。这就是我提到它的原因。在我的情况下它不起作用。所以,..【参考方案2】:这是一个很好的问题,你可以使用 get_defined_vars() 来解决这个问题:
$foo = NULL;
$a = get_defined_vars();
if (array_key_exists('def', $a))
// Should evaluate to FALSE
;
if (array_key_exists('foo', $a))
// Should evaluate to TRUE
;
这会解决你的问题
【讨论】:
好的,然后在其中添加 array_key_exist 东西【参考方案3】:最简单的定义在: http://php.net/manual/en/function.array-key-exists.php
<?php
$array=array('raja'=>'value', 'john'=>'value2');
$var='raja';
echo array_key_exists($var, $array);
?>
【讨论】:
以上是关于PHP - 检查数组索引是不是存在或为空的主要内容,如果未能解决你的问题,请参考以下文章
如果某个值存在于某个数组索引处,我如何检查 JavaScript?