2016-10-22 6 views
0

課題の一部として、私はRiot API(League of LegendsのJSONデータ)からいくつかの統計情報を取得しようとしています。今まで私は召喚者の名前に基づいて召喚者ID(ユーザーID)を見つけ出しました。そして、私は召喚者の以前の(20)ゲームのIDを除外しました。しかし、今私はJSONデータから適切な値を取得する方法を見つけることができません。だから私はあなたに私のコードを紹介したときに、これは私が推測する:Riot APIからのJSONのデコードに役立つ

$ matchIDsをループのための私の上に示すように20個の整数(ゲームID)を

for ($i = 1; $i <= 1; $i++) 
{ 
$this_match_data = get_match($matchIDs[$i], $server, $api); 
$processed_data = json_decode($this_match_data, true); 
var_dump($processed_data); 
} 

の配列ですが、私のように、1に設定されています上記の例は、私がマッチIDと召喚者IDを得た方法です。私は比較のために、ここでこれらのコードを追加します:

for ($i = 0; $i <= 19; $i++) 
{ 
$temp = $data['matches'][$i]['matchId']; 
$matchIDs[$i] = json_decode($temp, true); 
} 

$データは、私はJSONページからすべての情報を引き出したときに私が得る変数であり、それは私が最初のコードブロックで$ this_match_dataを取得するために使用するのと同じ方法です。問題の根本に今

function match_list($summoner_id, $server, $api)  
{ 
$summoner_enc = rawurlencode($summoner); 
$summoner_lower = strtolower($summoner_enc); 
$curl =curl_init('https://'.$server.'.api.pvp.net/api/lol/'.$server.'/v2.2/matchlist/by-summoner/'.$summoner_id.'?api_key='.$api.''); 
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
$result = curl_exec($curl); 
curl_close($curl); 
return $result; 
} 

This is whereは私がサイトから取得したデータを入れて、あなたは私が働いているかを見ることができます。今度は、次のコードを使用して、そのファイルの最初の値であるマッチIDを取得できます。

echo $processed_data['matchId']; 

しかし、この.jsonファイルから他の情報をロックすることはできません。私は['matchId']の代わりに['region']のようなものを入力してみましたが、$ processed_data [0]のようなインデックス番号を挿入するだけでなく何も起こりません。これは最初の例から正しい情報を得る方法であり、私は本当にここで失われています。

答えて

1

私は自分でそれを考え出したと思います。これをコードに追加することで、私はjsonファイルを人にやさしい方法で印刷することができ、データを扱うのがはるかに簡単になるはずです。

echo ("<pre>"); 
var_dump($processed_data); 
echo ("</pre>"); 
+1

私は個人的には、読みやすさのために 'print_r($ processed_data);'、あるいは 'var_export($ processed_data); – RiggsFolly

関連する問題