Foreach Loop API审核

时间:2012-10-19 01:24:20

标签: php api

我正在尝试进入foreach循环,我正在尝试从API中显示一些东西 - 唯一的问题是我们有3个开发服务器,有些时候我们运行脚本似乎相当缓慢显示信息,因为它迭代通过它们,我不太确定它是脚本还是服务器,所以我只是想知道是否有任何方法可以清理或使这个脚本更快一点:

 foreach ($members as $member)
 {
      $level = $member['character']['level'];

      if($level==90)
      {
           $mname = $member['character']['name'];
           $character = $armory->getCharacter($mname);
           $gear = $character->getGear();
           $milevel = $gear['averageItemLevelEquipped'];
      }
 }

我们想要它做的是获取所有成员的名字,然后为每个成员获取角色信息,然后还有它的装备,我只想检查一下,从我写的,它只做每个成员一次。

由于

1 个答案:

答案 0 :(得分:1)

(将我的评论转化为适当的检查,编辑,评论等的答案......)

循环没有明显的错误。

第一步是profile the code找到什么位慢,然后你可以弄清楚该怎么做。

以下是一些猜测可能导致它变慢...

  • 对魔兽军械库的网络和/或数据库访问。

我认为这是与WoW Armory谈论的,它将涉及getCharactergetGear的网络或数据库访问,这会严重减慢速度。那将是你最容易出现的迟缓。考虑缓存他们的结果,即使是几分钟。这PHP WoW Armory project声称可以为您做到这一点,也许可以尝试一下?

  • $ members中的很多元素。

如果你可以向你的API索取90级成员列表,而不是自己迭代它们,那么根据你的API搜索方式,这可能会更有效。

但首先是个人资料。