我让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经济性中的每个项都是唯一的,并且随着每个新所有者以及应用于该项的每个新工具而更改。