我有一个带有一个数组的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上获得 php undefined offset 0 错误。
也就是说,就像我说的那样,同一个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
}
}
]
}
我错过了什么?有什么想法吗?
谢谢!
**编辑**
原来,我在另一台计算机上测试了它并使用谷歌浏览器。与Firefox和Safari相同的错误(至少是一些一致性)。仅适用于我的笔记本电脑。但是为什么其他具有相同结构的数组工作正常而这个没有呢?
答案 0 :(得分:0)
我终于解决了它。有时结果集实际上是空的。与json没什么关系。