PHP JSON解码WoW raid进展

时间:2015-03-11 23:03:05

标签: php json

此代码将回显不同的子类别,但我想通过这个并获取有关当前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},

1 个答案:

答案 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;袭击。