Traverse FQL Результат на PHP

У меня много проблем с пониманием того, как работает 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

Это делает трюк. Может быть, может быть лучший способ сделать это? Спасибо

1 ответ

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

Печатает все key -> value пары внутри $fqlResult[0],

Другие вопросы по тегам