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
それはトリックを行います。多分それを行うためのより良い方法があるでしょうか?ありがとう