2013-02-15 66 views
1

如何檢查數組是否未定義? 我正在使用issetempty但它們都不適用於未定義的數組。if array undefined

這是我的代碼:

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

你的意思是[is_array](http://php.net/manual/en/function.is-array.php)? – Rikesh 2013-02-15 09:55:24

+3

array_key_exists()? – mimipc 2013-02-15 09:55:40

+1

您的示例沒有任何問題。 「不工作」是什麼意思? – MrCode 2013-02-15 10:03:18

回答

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

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函數,您只能檢查數組或變量e不等於NULL,如果它包含可解釋爲布爾值TrueFalse的值,則整數大於0且變量值(或數組鍵/索引/元素)不等於NULL

我通常檢查變量是否設置爲:is_null,它可以用來檢查數組索引或元素是否在同一個數組中定義。

編輯:

也可以檢查一個變量是陣列:(sizeof($something) > 0)或具有:is_array(多個)功能。

3

基於您的代碼指定此代碼,我想你要找的功能​​。

$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密鑰。

相關問題