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