使用 PHP 从 json 中获取未命名(?) 数据


Grabbing unnamed(?) data from json with PHP

我在这里遇到了一点麻烦...

我正在尝试从这里的 json 文件中获取一些值,它可以在这里格式化。

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,
},

等等。

我想抓住其中一件物品的杀戮。意思是我想给出一个像"悬挂式发射器"这样的参数并以 108 返回。在这种情况下,"悬挂式发射器"。我正在寻找这样的代码:

$gamemode = $decode['data']['topStats']['mapMode'];

但如果有人知道更好的方法,请告诉我。由于列表中的项目没有"名称",不像"data"和"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。我正在尝试阅读它,但到目前为止,我无法弄清楚这一点。

我真的不知道我要怎么做,因为我试图找到的价值观在同一个组中。

$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;
<?
$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;
    }
}
?>