在多暗阵列中查找现有键

时间:2013-08-19 11:24:44

标签: php facebook-graph-api multidimensional-array

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

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

我想浏览一系列信息,看看密钥是否存在和/或其中是否包含任何信息。

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

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

非常感谢任何帮助!

谢谢!

2 个答案:

答案 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>");
    }
}