使用json

时间:2016-12-08 18:20:48

标签: php json

我试图使用传说api联盟并将冠军ID转换为他的名字代码:

  public function GetChampName($id)
  {
    $summObj = $this->getJSONObj('https://global.api.pvp.net/api/lol/static-data/na/v1.2/champion/' . $id .'?champData=image&api_key=' . $this->apikey . '');
    $summID =  (string) ($summObj[$id]["key"]);

    return $summID;
   }

并使用那样:

                      $championid = $summoners[$i]['championId'];
                      $championName = $LolApi->GetChampName($championid);

$ summoners是当前游戏api的参与者数组。

当我做的时候

var_dump($championName) 

im getting int(99)int(37)int(28)int(21)int(80)例如,当我试图像我说的那样使用它时:

                      $championid = $summoners[$i]['championId'];
                      $championName = $LolApi->GetChampName($championid);

我得到了这个错误:

Notice: Undefined offset: 99 in F:\xampp\htdocs\tilt\LolApi.php on line 24

Notice: Undefined offset: 37 in F:\xampp\htdocs\tilt\LolApi.php on line 24

Notice: Undefined offset: 28 in F:\xampp\htdocs\tilt\LolApi.php on line 24

Notice: Undefined offset: 21 in F:\xampp\htdocs\tilt\LolApi.php on line 24

Notice: Undefined offset: 80 in F:\xampp\htdocs\tilt\LolApi.php on line 24

行:

$summID =  (string) ($summObj[$id]["key"]);

任何想法如何修复它? ,我将提供修理它所需的一切。

1 个答案:

答案 0 :(得分:0)

从var_dump可以清楚地看出,您收到的数组的格式为:

[
    "id"=>37,
    "key"=>"Sona"
]

等等。你应该使用

$summID = (string) ($summObj["key"]);

获取名称而不是

$summID = (string) ($summObj[$id]["key"]);