【发布时间】:2014-06-21 11:24:02
【问题描述】:
我有一个网站,允许人们购买特定游戏的物品。我有一个页面显示 200 多种商品的所有可用库存。该信息来自 Steam API。
我使用此代码来计算可用项目。
$count_foundingFather = 0;
foreach($hatbot1_array['result']['items'] as $item){
if($item['defindex'] == 30142){
$count_foundingFather++;
}
}
它根据项目 DefIndex 编号被找到的次数来计算项目。
从 API 返回的 JSON 数组很大,使得页面加载时间非常长。此外,必须为每个项目使用那段代码会使其花费更长的时间。
有没有一种方法可以使项目计数更快,或者与人们每次加载页面时分开?
【问题讨论】:
-
一种更通用的方法是循环所有项目,然后将每个
defindex的项目计数保存在另一个数组 ($counts[$item['defindex']]++) 中,然后您可以使用 memcached、apc 或 key/value-storage 进行缓存您的选择。 -
对于我在我的网站上销售的每件商品,都有一个类似上面的代码块。上面的例子是Founding Father项目。有许多不同的项目我需要单独计算。但除了上面的大量代码之外,我没有看到不同的方法。有没有其他办法?
标签: php arrays json performance