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

时间:2014-04-26 03:29:36

标签: php arrays json api steam

我有Steam API工作和功能,但我想计算一个项目在数组中的次数,所以我可以打印我有多少项目库存。

我将其用于Team Fortress 2 Items

这是我使用的网址。我拿出了我的API密钥和蒸汽ID http://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
        },

但是还有更多项目。

我想知道如何计算具有特定defindex的项目数并打印它。

编辑:

<?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'];
?>

2 个答案:

答案 0 :(得分:1)

使用PHP&#39; count

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

答案 1 :(得分:0)

您需要遍历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经济中的每个项目都是唯一的,并且随每个新所有者而变化,并且每个新工具都应用于该项目。