2013-02-15 7 views
1

배열이 정의되지 않았는지 어떻게 확인합니까? issetempty을 사용하고 있지만 둘 다 정의되지 않은 배열에서 작동하지 않습니다. 배열이 정의되지 않은 경우

내 코드입니다 :

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

[is_array]를 의미합니까 (http://php.net/manual/en/function.is-array.php)? – Rikesh

+3

array_key_exists()? – mimipc

+1

예제에는 아무런 문제가 없습니다. '일하지 않는다 '는 것이 정확히 무엇을 의미합니까? – MrCode

답변

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이 아니고 부울 True 또는 False으로 해석 될 수있는 값이 포함되어 있고 0보다 큰 정수이고 변수 값 (또는 배열 키/색인/요소)이 NULL이 아닌 경우 해석 할 수있는 값이 포함되어 있습니다.

일반적으로 변수가 다음과 같이 설정되어 있는지 확인합니다 : is_null 그리고 배열 색인이나 요소가 동일한 배열 내에 정의되어 있는지 확인하는 데 사용할 수 있습니다.

EDIT :

변수로 배열되어있는 경우에도 확인할 수 (sizeof($something) > 0) 또는 함께 : is_array 기능 (들).

3

작업 Rikeshmimipc

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

에 의해 지정된이 코드는, 나는 당신이 기능 array_key_exists()을 찾고 생각합니다. 가변 $content가 설정되어 있기 때문에

$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()

은 작동하지 않으며, 그렇게 배열 empty()도 작동하지 빈하지 않을 수있다. main 키가 $content['menu'] 배열에 있는지 확인하려고합니다.

관련 문제