2014-01-09 83 views
0

我目前正在嘗試使用API​​,但我發現真的很難從api中將數據提取到我的網頁中。如何從數組中獲取數據[API/JSON]

我試過使用json_decode($,true),它工作正常,但我只是不能提取一些數據。

就像在這個例子中,你會如何得到這個名字?

{"id":12345678,"name":"MyAwesomeLeagueName","profileIconId":593,"summonerLevel":30,"revisionDate":1389164617000} 

我用於從其他人獲取數據,但無法真正讓它與這樣的類型工作。另外,如果有人有一些很好的JSON - > PHP教程,我真的很感激。

+3

有沒有教程。沒有什麼可教的。 JSON是一種字符串格式,可解碼爲PHP數據結構。本教程僅僅是「查看PHP數組/對象文檔」。 'var_dump($ r)'會告訴你你需要知道的一切。 'echo $ decoded_stuff ['name']'是你所需要的。 –

+1

我根本不確定你的問題,但是你應該可以做'$ r ['name']'因爲你在json_decode中設置了assoc = true'。 – th3falc0n

+1

你可以查看此主題。 http://stackoverflow.com/questions/15043981/how-to-access-json-decoded-array-in-php – Dinesh

回答

3

在該示例中,您只需引用$ r ['name']例如

echo $r['name']; 

JSON字符串解碼後,做你的陣列上的var_dump,它會告訴你的內容以及如何訪問。

要獲得所有帶有一定的魔法等級按你的榜樣,你會通過陣列需要循環和測試特定鍵的值:

$r = json_decode($r, true); 

//loop through $r 
foreach ($r['champions'] as $key => $value) { 
    if ($value['magicRank'] != 8) { 
    //if magicRankis not 8, ignore and move on to the next entry 
    continue; 
    } 
    //magicRank is 8, do something 
    echo $value['name'] . " has magic rank of 8<br />"; 
} 
+0

我將如何能夠全部迴應它們?到目前爲止感謝 – kristian

+0

查看更新的答案爲一個非常簡單的例子。這會迴應:「有魔法排名8」。順便說一句,你的pastebin例子是無效的JSON - 你在字符串的末尾缺少「]}」。 – gazareth

+0

我知道有些不見了,我只是拿了一小部分,因爲原來是很大的。 :)所以要理解,$值,是我如何「捕捉」它在我的數組?在這個示例中, – kristian