需要帮助解决使用PHP从Riot API解码JSON

时间:2016-10-22 17:57:05

标签: php json riot riot-games-api

作为作业的一部分,我试图从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;
}

现在问题的根源是This is where我把我从网站上获得的数据放在一起,这样你就可以看到我正在使用的内容。现在通过使用以下代码,我可以获得该文件中的第一个值,即匹配ID。

echo $processed_data['matchId'];

但我似乎无法锁定此.json文件中的任何其他信息。我尝试输入类似[&#39; region&#39;]而不是[&#39; matchId&#39;]的内容而没有运气以及插入像$ processed_data [0]这样的索引号,但没有任何反应。这就是我从第一个例子中得到正确信息的方式,我真的迷失在这里。

1 个答案:

答案 0 :(得分:1)

好的,所以我想我已经弄明白了。通过将其添加到代码中,我可以以更人性化的方式打印出json文件,这样可以更轻松地处理数据。

A[20]