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 - 检查数组索引是不是存在或为空的主要内容,如果未能解决你的问题,请参考以下文章

php 中 判断数组中是不是有值

如果某个值存在于某个数组索引处,我如何检查 JavaScript?

如果电子邮件已存在或为空,请检查文本输入

php 数组判断key是不是存在,如果存在显示此key的value

如何在javascript中检查数组索引是不是存在?

数组索引是不是存在