2016-10-22 4 views
0

과제의 일부로 Riot API (리그 오브 레전드 용 JSON 데이터)에서 일부 통계를 추출하려고합니다. 지금까지 나는 소환사 이름을 기반으로 소집사 ID (사용자 ID)를 찾을 수 있었고, 소환사의 이전 (20) 게임의 ID를 필터링했습니다. 그러나 지금은 JSON 데이터에서 올바른 값을 얻는 방법을 알 수 없습니다. 그래서 내가 당신에게 내 코드를 보여줄 때 추측입니다 :PHP가있는 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를 얻을 수 있습니다.

그러나이 .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