因此我遇到了一个小问题,我已经尽力解决但没有成功。我有一个Facebook应用程序访问签入信息,因此通过API生成多维数组中的JSON输出。我用PHP编码。
问题我得到的并不是每个签到都有坐标/位置信息(纬度/经度),所以它会在页面上出现错误。
我想浏览一系列信息,看看密钥是否存在和/或其中是否包含任何信息。
foreach ($checkins['data'] as $checkin) {
echo ("<p>{$checkin['place']['location']['latitude']}</p>");
echo ("<p>{$checkin['place']['location']['longitude']}</p>");
}
这是我使用的代码,但就像我说的,如果没有任何位置信息,我会收到错误。有谁知道如何解决这个问题,还是有一种简单的循环方式,并找出特定的密钥是否存在?
非常感谢任何帮助!
谢谢!
答案 0 :(得分: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>");
}
}
答案 1 :(得分: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>");
}
}