PHP - 检查数组索引是否存在或为空

时间:2013-03-09 11:43:42

标签: php arrays null indexing isset

有没有办法检查数组索引是否存在或是否为空isset()不会告诉您索引是否存在或存在但是为空。 如果我这样做:isset($array[$index]) || is_null($array[$index])它将无效,因为如果索引不存在,is_null将崩溃。

我该如何检查?还有一种方法可以检查是否存在某些东西,无论它是否设置为null?

3 个答案:

答案 0 :(得分:22)

函数array_key_exists()可以做到这一点,property_exists()用于对象,以及Vineet1982所说的。谢谢你的帮助。

答案 1 :(得分:9)

这是一个非常好的问题,您可以使用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
};

这将解决您的问题

答案 2 :(得分:2)

最简单的定义: 的 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);
?>