2016-09-26 3 views
0

배열에있는 특정 키가 있는지 확인하고 존재하는 경우 값을 출력하려고합니다. 아래 코드를 실행 해 보았지만 아무 것도 출력하지 않았습니다.array_key_exists()는 출력을 생성하지 않습니다.

$json = json_decode($result, true); 

if (array_key_exists('genre', $json)){ 
print ("Genre: ".$json[0]['genre']."<br/>"); 
    } 

foreach($json[0]['types'] as $key2 => $values2) { 
    if (array_key_exists('types', $values2)){ 
     print ("Types: Album type: ".$values2."<br/>"); 
    } 

} 

그냥 PHP에 들어있어, 내 코드에 무슨 문제가 있는지 잘 모르겠습니다. 내가 얻을 수있는 모든 도움에 감사 할 것입니다. 건배

+0

과 같은 것을 확인하십시오? – Rizier123

+0

'$ json' 배열이 수치 적으로 색인되어 있다면'genre' 키가 없다고 생각합니다. –

+0

그래서 숫자 키 ('$ json [0] [ 'genre']')가있는 배열에서 키 genre를 찾고 있습니다. – Andrew

답변

0

배열 ($ json [0])의 첫 번째 요소에 액세스하여 결과를 인쇄하려고하면 틀린 배열을 테스트하고있는 것입니다. array_key_exists()는 중첩 배열을 재귀 적으로 검사하지 않으므로 중첩 배열을 사용해야합니다. (;``인 print_r ($의 JSON)) 배열 구조가 보이는 않는 방법

array_key_exists('genre', $json[0]) 

또는

foreach($json as $jsonArray) { 
    if(array_key_exists('genre', $jsonArray)) { 
     .... 
    } 
} 
+0

U 올바른 것입니다. 내가 그걸 보지 못했다니 믿을 수가 없어. 고마운 친구 –

관련 문제