作为作业的一部分,我试图从 Riot API(英雄联盟的 JSON 数据)中提取一些统计数据。到目前为止,我已经设法根据召唤者名称找到召唤者 id(用户 id),并且我已经过滤掉了该召唤者之前(20)场比赛的 id。但是现在我不知道如何从 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);
}
如上所示,我的 for 循环设置为 1,因为我只专注于在继续所有 20 之前找出一个。上面的示例是我如何获得匹配 ID 和召唤者 ID。我将在此处添加这些代码以进行比较:
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;
}
现在到问题的根源,这是我放置从网站获得的数据的地方,因此您可以看到我正在处理的内容。现在通过使用以下代码,我可以获得该文件中的第一个值,即匹配 ID。
echo $processed_data['matchId'];
但我似乎无法锁定此 .json 文件中的任何其他信息。我尝试输入类似 ['region'] 而不是 ['matchId'] 的东西,但没有成功,也尝试插入像 $processed_data[0] 这样的索引号,但没有任何反应。这就是我从第一个示例中获得正确信息的方式,我真的迷失了。