1

如何检查数组是否未定义?我正在使用issetempty但它们都不适用于未定义的数组。

这是我的代码:

if (isset($content['menu']['main'])){
    echo 'there is menu';               
}
4

3 回答 3

4

使用Rikeshmimipc指定的此代码

$arr = array("menu"=>array("main"=>1));
if (is_array($arr) && array_key_exists('menu', $arr)) {
     echo "array";
}

工作示例http://codepad.viper-7.com/Q3gTwn

于 2013-02-15T10:02:28.867 回答
3

根据您的代码,我认为您正在寻找函数array_key_exists()

$content = array('menu'=>array());
echo isset($content);
>>> 1
echo array_key_exists('menu', $content);
>>> 1
if ( array_key_exists('main', $content['menu']) ) {
    echo "Main menu exists";
} else {
    echo "Main menu does not exist";
}
>>> Main menu does not exist

isset()行不通,因为$content设置了变量,而且数组可能不为空,所以empty()也行不通。您想查看该main键是否存在于$content['menu']数组中。

于 2013-02-15T10:07:41.013 回答
2

您可以使用以下命令检查数组元素是否存在in_array

in_array('one', array('two', 'three', 'four')); // false

您可以使用以下命令检查数组索引array_key_exists

array_key_exists('metallica', array('metallica' => 'worst than megadeth')); // true

使用该isset函数,您只检查数组或变量是否不等于,NULL以及它是否包含一个可以解释为布尔值TrueFalse大于整数0的值,以及变量值(或数组键/索引/元素)是否不等于NULL.

我通常检查变量是否设置为: is_null,它可用于检查是否在同一个数组中定义了数组索引或元素。

编辑:

您还可以检查变量是否是带有:(sizeof($something) > 0)或带有:is_array函数的数组。

于 2013-02-15T10:00:38.840 回答