0

作为作业的一部分,我试图从 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] 这样的索引号,但没有任何反应。这就是我从第一个示例中获得正确信息的方式,我真的迷失了。

4

1 回答 1

1

好的,所以我想我自己已经弄清楚了。通过将其添加到代码中,我可以以更人性化的方式打印出 json 文件,这应该使处理数据变得更加容易。

echo ("<pre>");
var_dump($processed_data);
echo ("</pre>");
于 2016-10-23T10:34:47.777 回答