2012-03-11 3 views
1

배열의 키가 참인지 어떻게 알 수 있습니까? 그렇지 않으면,이배열의 조건부 표시

[0] => array 
(
[id] => 1 
[some_key] => something 
) 

[1] => array 
(
[id] => 2 
) 

[2] => array 
(
[id] => 3 
[some_key] => something 
) 

foreach($array as $value){ 
$id = $value->id; 
if($value->some_key === TRUE){ 
$some_key = $value->some_key; //some may have this key, some may not 
} 
} 

이 확실하지 않음이 배열이 some_key 것을 가지고 있는지 확인하는 적절한 문장 무엇을 사용하지 마십시오. 검사를하지 않으면 오류 메시지가 출력됩니다.

미리 감사드립니다.

+0

확인할 키입니까? 값입니까? 왜냐하면 당신은 열쇠를 말하고 있기 때문입니다. – Bradmage

답변

1

isset() 함수를 사용하여 변수가 설정되어 있는지 확인할 수 있습니다.

foreach($array as $value){ 
    $id = $value->id; 
    if(isset($value->some_key)){ 
     $some_key = $value->some_key; 
    } 
} 
2

는 배열 $ 배열이 문자열이나 정수 할 수있는 인덱스 $의 some_key를,이 경우는 true를 돌려줍니다

isset($array[$some_key]) 

을보십시오.

2

기타는는 isset(), 대부분 작품을 언급했다. 키 아래의 값이 null의 경우는하지만, 실패 : 테스트하는이 경우 중요

$test = array('sampleKey' => null); 
isset($test['sampleKey']); // returns false 

경우, 명시 적 array_key_exists 올바르게 처리() 함수있다 :

http://php.net/manual/en/function.array-key-exists.php

+0

좋은 지적. 그러나 객체에서 작동하지 않는다는 점은 주목할 가치가 있습니다. 객체의 경우 property_exists() 함수를 사용해야합니다. http://www.php.net/manual/en/function.property-exists.php –

1
function validate($array) 
{ 
    foreach($array as $val) { 
     if(!array_key_exists('id', $val)) return false; 
     if(!array_key_exists('some_key', $val)) return false; 
    } 
    return true; 
} 
관련 문제