计算Steam API的JSON数组中的项目数


Counting the number of items in a JSON array for Steam API

我让Steam API工作正常,但我想计算一个项目在数组中的次数,这样我就可以打印我有多少库存项目。

我正在使用这个团队堡垒2项目

这是我使用的URL。我拿出我的API密钥和蒸汽IDhttp://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key=APIKey&SteamID=Steam_ID&format=json

其输出为:

{
"result": {
    "status": 1,
    "num_backpack_slots": 300,
    "items": [
        {
            "id": 1264649944,
            "original_id": 1264649944,
            "defindex": 267,
            "level": 4,
            "quality": 5,
            "inventory": 2147483948,
            "quantity": 1,
            "origin": 1,
            "flag_cannot_trade": true
        },

但是,还有更多的项目比那一个。

我想知道如何计算特定定义的项目数量并打印它。

编辑:

<?php
$link = file_get_contents('http://api.steampowered.com/IEconItems_440/GetPlayer Items/v0001/?key=&SteamID=&format=json');
$myarray = json_decode($link, true);
print $myarray['result']['items'][0]['id'];
?>

使用PHP的计数:

<?php
$link = file_get_contents('http://api.steampowered.com/IEconItems_440/GetPlayer Items/v0001/?key=&SteamID=&format=json');
$myarray = json_decode($link, true);
echo count($myarray['result']['items']);
?>

编辑:要计数具有特定属性的,您必须循环遍历所有属性并递增一个变量:

<?php
$link = file_get_contents('http://api.steampowered.com/IEconItems_440/GetPlayer Items/v0001/?key=&SteamID=&format=json');
$myarray = json_decode($link, true);
$count = 0;
foreach($myarray['result']['items'] as $item){
    if($item['defindex'] == 267){//or whatever you're looking for
        $count++;
    }
}
echo $count;
?>

您需要循环使用items数组。如果你正在寻找一个特定的defindex,你只需要统计你看到该特定值的次数。

$total = 0;
foreach ($myarray->result->items as $item)
{
    if ($item->defindex == 5000)    // Scrap metal
    {
       $total++;
    }
}

如果你想统计每种类型的物品,你会想做一些类似的事情:

$inv_array = array();
foreach ($myarray->result->items as $item)
{
    if (array_key_exists($item->defindex,$inv_array))
    {
        $inv_array[$item->defindex]++;
    }
    else
    {
        $inv_array[$item->defindex] = 1;
    }
}
var_dump($inv_array);

这将包含一个数组,其中包含每个唯一defindex 的计数

上面代码中的错误是您正在查看id。这对于TF2经济性中的每个项都是唯一的,并且随着每个新所有者以及应用于该项的每个新工具而更改。