如何检查数组是否未定义?
我正在使用isset
和empty
,但它们都不适用于未定义的数组。
这是我的代码:
if (isset($content['menu']['main'])){
echo 'there is menu';
}
答案 0 :(得分:4)
使用 Rikesh 和 mimipc
指定的代码$arr = array("menu"=>array("main"=>1));
if (is_array($arr) && array_key_exists('menu', $arr)) {
echo "array";
}
答案 1 :(得分: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']
密钥。
答案 2 :(得分: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
,并且它是否包含可以解释为布尔True
或{{1}的值},大于False
的整数,如果变量值(或数组键/索引/元素)不等于0
。
我通常检查变量是否设置为:NULL
,它可用于检查数组索引或元素是否在同一个数组中定义。
编辑:
您还可以检查变量是否为包含is_null
或:(sizeof($something) > 0)
函数的数组。