2013-08-19 20 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>"); 
    } 
}