2013-08-19 18 views
0

因此,遇到了一個小問題,我盡力解決但沒有成功。我有一個Facebook應用程序訪問檢入信息,並通過API在多維數組中生成JSON輸出。我使用PHP編碼。查找多調暗陣列中的現有密鑰

問題我得到的不是每個簽入都有座標/位置信息(緯度/經度),所以它會返回頁面上的錯誤。

我想通過一系列信息,找出密鑰是否存在和/或其中是否包含任何信息。

foreach ($checkins['data'] as $checkin) { 
     echo ("<p>{$checkin['place']['location']['latitude']}</p>"); 
     echo ("<p>{$checkin['place']['location']['longitude']}</p>"); 
} 

這是我使用的代碼,但就像我說的,如果沒有任何位置信息,我得到一個錯誤。有誰知道我可以如何解決這個問題,或者有一個簡單的方法循環查找特定的鍵是否存在?

任何幫助將不勝感激!

謝謝!

回答

1

檢查與isset存在,你正在尋找的內容():

foreach ($checkins['data'] as $checkin) { 
     if(isset($checkin['place']) 
     && isset($checkin['place']['location']) 
     && isset($checkin['place']['location']['latitude']) 
     && isset($checkin['place']['location']['longitude']) 
    ) { 
      echo ("<p>{$checkin['place']['location']['latitude']}</p>"); 
      echo ("<p>{$checkin['place']['location']['longitude']}</p>"); 
     } 
} 
0

試試這個:

foreach ($checkins['data'] as $checkin) { 
    if (array_key_exists('place', $checkin) && 
      array_key_exists('location', $checkin['place']) && 
      array_key_exists('latitude', $checkin['place']['location']) && 
      array_key_exists('longitude', $checkin['place']['location']) 
     ) 
    { 
     echo ("<p>{$checkin['place']['location']['latitude']}</p>"); 
     echo ("<p>{$checkin['place']['location']['longitude']}</p>"); 
    } 
}