此代码将回显不同的子类别,但我想通过这个并获取有关当前raid的数据(不同老板的boss杀死次数)。
代码:
$url = 'http://us.battle.net/api/wow/character/kelthuzad/bigbranch?fields=statistics';
$content = file_get_contents($url);
$char_json = json_decode($content, true);
foreach($char_json['statistics']['subCategories'] as $p)
{
echo $p[name].'<br />';
}
输出:
Character
Combat
Kills
Deaths
Quests
Dungeons & Raids
Skills
Travel
Social
Player vs. Player
Legacy
Pet Battles
Proving Grounds
我需要到达name = 'Dungeons & Raids'
,但我不能这样做。 $char_json['statistics']['subCategories']['Dungeons & Raids']
以null
的形式返回。我所关注的最终数据是quantity
,如API的这个片段所示:
{"id":9317,"name":"Gruul kills (Normal Blackrock Foundry)","quantity":0,"lastUpdated":0,"money":false},
答案 0 :(得分:0)
完成后
$char_json = json_decode($content, true);
$ char_json是一个关联数组。执行print_r($char_json);
以查看整个阵列结构。
然后问题是要么解决正确的索引,要么在有很多元素的情况下循环遍历数组。
如果您对print_r的输出有疑问。
编辑:我刚刚查看了您网址中的数据。龙与地下城突袭在这里: $char_json['statistics']['subCategories'][5]
所以你可以做到
foreach ($char_json['statistics']['subCategories'][5]['statistics'] as $stat) {
$name = $stat['name'];
$qty = $stat['quantity'];
// etc...
}
这确实假设Dungeons&amp; Raid始终是较大阵列的第6个元素。如果不是这种情况,你必须遍历每个$char_json['statistics']['subCategories']
,直到找到name = Dungeons&amp;袭击。