2016-11-15 43 views
1

我使用PHP從JSON獲取數據,當我使用array_key_exists測試JSON中的密鑰以確保它存在時,它不返回任何內容。這裏是鏈接庫:https://api.edmunds.com/api/vehicle/v2/vins/4T1BK1EB6DU056165?&fmt=json&api_key=zzasv56vxwkx67m9cy6apfmq 當我嘗試這樣運行它,我得到什麼:當我應用array_key_exists函數時,它不會返回JSON的值

if(array_key_exists('years[0]->year', $jfo)) { 
$mds = $jfo->years[0]->year; 

}else{ 
$mds="mds not found"; 
} 

而這樣一來它的工作原理:

$mds = $jfo->years[0]->year; 

回答

0

假設你確定值在設置時不會是NULL,您最好使用isset()。喜歡的東西

if(isset($jfo->years) 
    && is_array($jfo->years) 
    && isset($jfo->years[0]->year) 
){ 
    $mds = $jfo->years[0]->year; 
}else{ 
    $mds = 'mds not found'; 
} 

或者,如果你想成爲更簡潔,並肯定知道$jfo->years將是一個數組。

$mds = isset($jfo->years[0]->year) ? $jfo->years[0]->year : 'mds not found'; 

或者如果您正在運行php> = 7並且希望變得更加冗長。

$mds = $jfo->years[0]->year ?? 'mds not found'; 
+0

不幸的是,它仍然不打印JSON的結果。如果我添加完整的代碼會有幫助嗎? – fredcampbell

相關問題