我在理解 json 的工作原理时遇到了很多问题。我向 Facebook 创建了一个 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
},
"metric": "page_fans_gender_age"
}
]
}
我需要用这些值遍历数组。但我不仅需要价值观,还需要“关键”部分。我希望能够用它创建一个图表,所以我需要键+值。
我努力了:
$fqlResult = $facebook->api($param);
echo $fqlResult[0]["M.25-34"];
并且也json_encode($fqlResult)
或json_decode($fqlResult)
但不可用。我怎样才能得到这些key->value
对?
编辑
我最终设法获得了内部数组值。但是,它似乎太硬编码了。我清楚地取了数据数组的第一个元素并遍历它。
foreach($fqlResult[0] as $theKey => $theValue){
if(is_array($theValue)){
foreach($theValue as $theKey2 => $theValue2){
echo("The key2: " . $theKey2 . " The value2: " . $theValue2 . "<BR>");
}// 2 level
}// if array
}// 1 level
它成功了。也许有更好的方法来做到这一点?谢谢