1

我在理解 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

它成功了。也许有更好的方法来做到这一点?谢谢

4

1 回答 1

1
while($element = current($fqlResult[0])) {
    echo "key: " . key($array);
    echo "-> value: " . $element . "\n";
    next($array);
}

打印key -> value里面的所有对$fqlResult[0]

于 2013-11-14T07:38:48.620 回答