2014-09-26 90 views
1

我正在使用RIOT API(聯盟的傳奇),我有這個虛擬主機,我測試我的代碼:20ff.net。我正在使用此代碼,輸出顯示在網站上。json/php:如何從嵌套和非嵌套數組中獲取信息

ini_set("display_errors", "1"); error_reporting(E_ALL); 

$ch = curl_init(); 

    curl_setopt($ch, CURLOPT_URL, 'https://euw.api.pvp.net/api/lol/euw/v2.5/league/challenger?type=RANKED_SOLO_5x5&api_key=***'); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 

$response = curl_exec($ch); 

    curl_close($ch); 

$json = json_decode($response, true); 

    foreach($json['entries'] as $entry){ 

     echo $entry['playerOrTeamName'] . ' - Division: ' . $entry['division'] . ' - ' . $entry['leaguePoints'] . ' LP' . "<br/>"; 
     } 

這些都是嵌套的數組,但theres 1個陣列包含entries陣列外部信息這就是,它被稱爲name。名稱包含玩家所在分部的名稱,例如:挑戰者,鑽石,鉑金,金,銀或銅牌。我想在$entry['division']前使用這個,所以輸出將是Division: Diamond 1(例如)而不是Division: 1。這是參考指南:https://developer.riotgames.com/api/methods#!/828/2921

我該如何解決這個問題,我沒有嘗試使用兩個foreach命令。

編輯JSON響應:

{ 
"name":"Miss Fortune's Weaponmasters", 
"tier":"CHALLENGER", 
"queue":"RANKED_SOLO_5x5", 
"entries": [{ 
    "playerOrTeamId":"43211669", 
    "playerOrTeamName":"Zednic", 
    "division":"I", 
    "league‌​Points":708, 
    "wins":394, 
    "isHotStreak":false, 
    "isVeteran":false, 
    "isFreshBlood":false‌​, 
    "isInactive":false 
}] 
+0

請編輯您的問題以顯示json,例如'$ response'的內容 – Steve 2014-09-26 12:38:14

+0

我已經包含所有代碼。這是你想看到或你想看到'var_dump($ response)'? – floppy 2014-09-26 12:40:43

+0

那麼我需要看到原始的json數據。只需在瀏覽器中訪問api url,然後將json粘貼到問題中即可。我不能自己做,因爲我沒有api鍵 – Steve 2014-09-26 12:42:31

回答

0

。假定我接到了你的意見,正確的JSON結構:

$json = json_decode($response, true); 
foreach($json['entries'] as $entry){ 
    echo $entry['playerOrTeamName'] . ' - Division: ' . $json['tier'] . ' ' . $entry['division'] . ' - ' . $entry['leaguePoints'] . ' LP' . "<br/>"; 
} 

的一點是,你可以從循環內訪問原始陣列,例如$json['tier']不只是當前循環項目

+0

作品!謝謝你,先生。我明白它現在如何運作! – floppy 2014-09-26 13:00:38

+0

@ floppy很好,很高興我能幫到你。並且只是一個提示,在將來如果有人要求您向您的問題添加代碼,請按編輯按鈕並將其放入實際問題中,而不是發表評論,因爲它更容易閱讀 – Steve 2014-09-26 13:04:17

+0

我會這樣做,謝謝先生。 – floppy 2014-09-26 13:11:24