【发布时间】:2017-03-07 23:58:24
【问题描述】:
我在使用 Steam API 时发现我无法获取我的商品数量。假设我有 2 次物品 A,它不会仅显示 1 次,数量设置为“2”,而是显示该物品两次,数量设置为 1。
这是我用来获取库存的部分。
$backpackURL = "http://api.steampowered.com/IEconItems_440/GetPlayerItems/v0001/?key=" . $APIkey . "&SteamID=" . $profile . "&format=json";
$schemaURL = "http://api.steampowered.com/IEconItems_440/GetSchema/v0001/?key=" . $APIkey . "&language=en";
$userBackpack = json_decode(file_get_contents($backpackURL), true);
$itemSchema = json_decode(file_get_contents($schemaURL), true);
$backpack_items = $userBackpack['result'];
$schema_items = $itemSchema['result'];
我在这里列出所有项目:
foreach($backpack_items['items'] as $ind=>$backpack_items){
$id = $backpack_items['id'];
$defindex = $backpack_items['defindex'];
$name = getItemName($schema_items, $defindex, $image_url);
$quantity = $backpack_items['quantity'];
$inventory = $backpack_items['inventory'];
echo '
$tmp[] = $backpack_items; print_r($tmp)
';
}
【问题讨论】:
-
那么我建议您将
$backpack_items附加到一个数组中,并过滤掉重复值并将它们合并到一个数组中。但是,您可能复制粘贴了代码(尤其是由于 cmets)并且不知道如何更改它。 -
那我建议你把你的问题精简到细节。有 2 个变量“链接”到您的问题。这可能是
$id,特别是$quantity,其余的都是过时的信息。而不是整个代码inside循环,做$tmp[] = $backpack_items; print_r($tmp);。删除过时的结果或通过 pastebin 或某种方式发布。 -
根据输出,我没有看到任何重复的 id,所以它实际上是一个独特的项目。但是,如果它们相同,您可以合并名称上的结果。