В рамках задания я пытаюсь получить некоторую статистику из Riot API (данные JSON для League of Legends). До сих пор мне удалось найти идентификатор призывателя (идентификатор пользователя) на основе имени призывателя, и я отфильтровал идентификаторы предыдущих (20) игр указанного призывателя. Однако сейчас я не могу понять, как получить правильные значения из данных JSON. Так что это когда я покажу вам мой код, я думаю:
$ matchIDs — это массив из 20 целых чисел (идентификаторов игр)
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);
}
Как показано выше, мой цикл for установлен в единицу, так как я просто концентрируюсь на выяснении одного, прежде чем продолжить со всеми 20. В приведенном выше примере показано, как я получил идентификаторы совпадений и идентификаторы призывателей. Я добавлю эти коды здесь для сравнения:
for ($i = 0; $i <= 19; $i++)
{
$temp = $data['matches'][$i]['matchId'];
$matchIDs[$i] = json_decode($temp, true);
}
$ data — это переменная, которую я получаю, когда извлекаю всю информацию со страницы 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;
}
Теперь к корню проблемы, Это где Я поместил данные, полученные с сайта, чтобы вы могли видеть, с чем я работаю. Теперь, используя следующий код, я могу получить первое значение в этом файле, идентификатор совпадения.
echo $processed_data['matchId'];
Но я не могу заблокировать любую другую информацию из этого файла .json. Я безуспешно пытался набирать такие вещи, как [‘region’] вместо [‘matchId’], а также вставлять номера индексов, такие как $ processing_data [0], но ничего не происходит. Именно так я получаю правильную информацию из первых примеров, и я действительно потерян здесь.
Хорошо, так что я думаю, что я понял это сам. Добавив это в код, я могу распечатать файл json более удобным для человека способом, и это должно упростить обработку данных.
echo ("<pre>");
var_dump($processed_data);
echo ("</pre>");
Других решений пока нет …