2012-01-06 3 views
0

У меня есть этот код:Fetch один элемент из json_decode

<?php 
    $fql = "SELECT url, normalized_url, share_count, like_count, comment_count, "; 
    $fql .= "total_count, commentsbox_count, comments_fbid, click_count FROM "; 
    $fql .= "link_stat WHERE url = 'http://apple.com'"; 

    $apifql = "https://api.facebook.com/method/fql.query?format=json&query=".urlencode($fql); 
    $json = file_get_contents($apifql); 
    $obj = json_decode($json); 
    print_r($obj); 
?> 

, который выводит:

Array ([0] => stdClass Object ([url] => http://apple.com [normalized_url] => http://www.apple.com/ [share_count] => 366493 [like_count] => 514795 [comment_count] => 298452 [total_count] => 1179740 [commentsbox_count] => 0 [comments_fbid] => 381975869314 [click_count] => 16558)) 

Как я могу определить в строку только commentsbox_count? Мне нужно это для моей базы данных.

+2

Было бы гораздо полезнее, если бы вы отправили исходный JSON вместо вывода 'print_r'. Чтение JSON более приятное, и вы можете вставить его во что-то вроде jsonlint, чтобы отформатировать его и быстро увидеть структуру. – ThiefMaster

+0

Не получил ваш вопрос. Что вам нужно? –

ответ

1

Вы можете получить к нему доступ через $obj[0]->commentsbox_count.

Элемент верхнего уровня представляет собой одноэлементный массив, единственным ключом которого является 0. Этот элемент является объектом stdClass (который в значительной степени похож на массив, но со свойствами вместо элементов массива), поэтому вы получаете доступ к элементу с помощью ->name.

+0

Именно то, что я хотел. Спасибо за ваш быстрый ответ! –

+0

Нет проблем, пожалуйста, не забудьте добавить +1 и принять ответ в течение нескольких минут - см. Http://meta.stackexchange.com/q/5234/147015 для получения подробной информации о том, кто или как принимать ответы. – ThiefMaster

+0

Я буду :) Спасибо за объяснение –

Смежные вопросы