我有很多问题需要了解json的工作原理。我创建一个FQL查询到Facebook,我收到正确的响应,但我似乎无法解析它。这就是我得到的
{
"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
它可以解决问题。也许有更好的方法可以做到这一点? 感谢
答案 0 :(得分:1)
while($element = current($fqlResult[0])) {
echo "key: " . key($array);
echo "-> value: " . $element . "\n";
next($array);
}
在key -> value
内打印所有$fqlResult[0]
对。