我有一个带有一个数组的 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 相同的错误(至少,有一定的一致性)。只能在我的笔记本电脑上正常工作。但是为什么其他具有相同结构的数组可以正常工作而这个不行呢?