如何檢查數組是否未定義? 我正在使用isset
和empty
但它們都不適用於未定義的數組。if array undefined
這是我的代碼:
if (isset($content['menu']['main'])){
echo 'there is menu';
}
如何檢查數組是否未定義? 我正在使用isset
和empty
但它們都不適用於未定義的數組。if array undefined
這是我的代碼:
if (isset($content['menu']['main'])){
echo 'there is menu';
}
使用由Rikesh和mimipc
$arr = array("menu"=>array("main"=>1));
if (is_array($arr) && array_key_exists('menu', $arr)) {
echo "array";
}
您可以檢查是否一個數組元素與in_array
存在:
in_array('one', array('two', 'three', 'four')); // false
而且你可以檢查數組的索引與array_key_exists
:
array_key_exists('metallica', array('metallica' => 'worst than megadeth')); // true
使用isset
函數,您只能檢查數組或變量e不等於NULL
,如果它包含可解釋爲布爾值True
或False
的值,則整數大於0
且變量值(或數組鍵/索引/元素)不等於NULL
。
我通常檢查變量是否設置爲:is_null
,它可以用來檢查數組索引或元素是否在同一個數組中定義。
編輯:
也可以檢查一個變量是陣列:(sizeof($something) > 0)
或具有:is_array
(多個)功能。
基於您的代碼指定此代碼,我想你要找的功能。
$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()
也將不能工作。您想查看$content['menu']
陣列中是否存在main
密鑰。
你的意思是[is_array](http://php.net/manual/en/function.is-array.php)? – Rikesh 2013-02-15 09:55:24
array_key_exists()? – mimipc 2013-02-15 09:55:40
您的示例沒有任何問題。 「不工作」是什麼意思? – MrCode 2013-02-15 10:03:18