我在这里遇到了一些麻烦...
我正在尝试从json文件中获取一些值here,,并且格式为here。
json文件如下所示:
{
"type": "success",
"message": "OK",
"data": {
"mainWeaponStats": [
{
"category": "Machine guns",
"timeEquipped": 3507,
"startedWith": null,
"code": "mgRPK",
"headshots": 18,
"name": "RPK",
"kills": 100,
"deaths": null,
},
{
"category": "Handheld weapons",
"timeEquipped": 5452,
"startedWith": null,
"code": "wahUGL",
"headshots": 1,
"name": "Underslung Launcher",
"kills": 108,
"deaths": null,
},
{
"category": "Sniper rifles",
"timeEquipped": 307,
"startedWith": null,
"code": "srMK11",
"headshots": 0,
"name": "MK11",
"kills": 2,
"deaths": null,
},
等等。
我想抓住其中一件物品的杀戮。意思是我想给出像“Underslung Launcher”这样的参数并返回108。 在这种情况下,“Underslung启动器”。 我正在寻找这样的代码:
$gamemode = $decode['data']['topStats']['mapMode'];
但如果有人知道更好的方法,请告诉我。 由于列表中的项目没有“名称”,不像“数据”和“数据”。 “mainWeaponStats”,我无法弄清楚如何做到这一点。
编辑: 这是到目前为止的相关代码:
$weaponstats = "http://battlelog.battlefield.com/bf3/weaponsPopulateStats/" . $bf3id . "/1/";
$content = file_get_contents($weaponstats);
$decode = json_decode($content, true);
$mainweaponstats = $decode['data']['mainWeaponStats'];
正如你所看到的,我很难学习Json。 我正在努力阅读它,但截至目前,我无法弄清楚这一点。
我真的不知道我将如何去做,因为我想要找到的值在同一组中。
答案 0 :(得分:2)
$mainweaponstats = $decode['data']['mainWeaponStats'];
这是一个对象数组(井数组,因为您将,true
传递给json_decode
)。只需循环浏览并找到你想要的东西。
$search = 'Underslung Launcher';
$kills = 0;
foreach($mainweaponstats as $w){
if($w['name'] === $search){
$kills = $w['kills'];
break;
}
}
echo $kills;
答案 1 :(得分:2)
<?
$name = "Underslung Launcher";
$json = file_get_contents("json.php");
$dec = array();
$dec = json_decode($json,true);
$datas = $dec['data']['mainWeaponStats'];
foreach($datas as $data)
{
if($data['name']==$name) {
echo $data['kills'];
break;
}
}
?>