2016-09-26 8 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

よう

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

か何かをチェックしてみて、どのようにあなたの配列構造は次のようになりますん( 'ますprint_r($のJSON);')? – Rizier123

+0

あなたの '$ json'配列が数値的に索引付けされている場合、その中に' genre'キーはないと思います。 –

+0

したがって、数字キー( '$ json [0] ['genre']')を明示的に持つ配列のキー 'genre'を探しています。 – Andrew

答えて

0

配列($ json [0])の最初の要素にアクセスして結果を印刷しようとしているので、間違った配列をテストしているようです。 array_key_exists()はネストされた配列を再帰的にチェックしないので、ネストされた配列を使用する必要があります。

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

あなたは正しいです。私はそれを見ていないと信じられない。ありがとう –

関連する問題