0

我有一个带有一个数组的 JSON 对象,来自一个名为 $PageFansCountryFql 的 FQL 查询:

{
"data": [
{
  "value": {
    "M.25-34": 3392, 
    "M.35-44": 2601, 
    "M.45-54": 1675, 
    "M.55-64": 863, 
    "M.18-24": 625, 
    "M.65+": 552, 
    "F.25-34": 531, 
    "F.35-44": 328, 
    "F.45-54": 159, 
    "M.13-17": 119, 
    "F.18-24": 104, 
    "F.55-64": 74, 
    "F.65+": 51, 
    "F.13-17": 35, 
    "U.45-54": 8, 
    "U.35-44": 3, 
    "U.25-34": 2, 
    "U.65+": 1
  }
}
]}

我设法对每个使用以下内容进行遍历:

foreach($PageFansCountryFqlResult[0] as $theKey => $theValue){
        foreach($theValue as $theKey2 => $theValue2){
                echo("The key2: " . $theKey2 . " The value2: " . $theValue2 . "<BR>");
        }// 2 level
}// 1 level

稍后我还有其他 FQL 查询。它们都在同一个php文件中。所有查询都返回相同的数组(或者至少是相同形式的内部数组),所以我使用相同的 foreach 公式。

问题是,这段代码在 Google Chrome 上运行良好。但是,我已经在 Safari 和 Firefox 上对其进行了测试,并且我只在 foreach for this query 上得到了 The php undefined offset 0 error 。

也就是说,正如我所说,同一个 php 文件上的所有其他 fql 查询都可以工作,除了这个。我使用了一个验证器,结果证明它通过了 W3C 验证。我还确保 facebook 会话正常(或者其他查询不会返回任何有价值的东西)。

作为参考,相同的 foreach 可以在 FQL 的以下结果上正常工作。

{
  "data": [
{
  "value": {
    "MX": 2865, 
    "CO": 2384, 
    "BO": 2355, 
    "AR": 1645, 
    "CL": 702, 
    "VE": 312, 
    "PE": 303, 
    "ES": 289, 
    "US": 110, 
    "BR": 18, 
    "IT": 9, 
    "EC": 9, 
    "EG": 8, 
    "CR": 7, 
    "FR": 6, 
    "PR": 6, 
    "ID": 6, 
    "GT": 5, 
    "DO": 5, 
    "PY": 4, 
    "PH": 4, 
    "UY": 4, 
    "GB": 3, 
    "CA": 3, 
    "AE": 3, 
    "TR": 3, 
    "JP": 3, 
    "HN": 3, 
    "RO": 2, 
    "MA": 2, 
    "DZ": 2, 
    "JO": 2, 
    "IN": 2, 
    "PL": 2, 
    "CN": 2, 
    "DE": 2, 
    "RU": 2, 
    "TW": 2, 
    "TN": 2, 
    "IL": 2, 
    "AU": 1, 
    "HK": 1, 
    "KZ": 1, 
    "SA": 1, 
    "PA": 1
  }
}
  ]
}

我错过了什么?有任何想法吗?

谢谢!

** 编辑 **

事实证明,我在另一台计算机上使用 Google Chrome 对其进行了测试。与 Firefox 和 Safari 相同的错误(至少,有一定的一致性)。只能在我的笔记本电脑上正常工作。但是为什么其他具有相同结构的数组可以正常工作而这个不行呢?

4

1 回答 1

0

我终于解决了。有时结果集实际上是空的。与json无关。

于 2013-11-15T06:22:37.803 回答