0

所以有一个小问题,我已经尽力解决但没有成功。我有一个访问签入信息的 Facebook 应用程序,因此通过 API 生成多维数组中的 JSON 输出。我正在用 PHP 编码。

我遇到的问题不是每个签到都有坐标/位置信息(纬度/经度),所以它会在页面上返回错误。

我想浏览信息数组并找出密钥是否存在和/或其中是否包含任何信息。

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

那是我使用的代码,但就像我说的,如果没有任何位置信息,我会收到错误消息。有谁知道我该如何解决这个问题,或者是否有一种简单的方法可以循环并找出特定键是否存在?

任何帮助将非常感激!

谢谢!

4

2 回答 2

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>");
      }
}
于 2013-08-19T11:36:24.423 回答
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>");
    }
}
于 2013-08-19T11:35:15.160 回答