0

我目前正在尝试进入 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'];
      }
 }

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

谢谢

4

1 回答 1

1

(将我的评论变成适当检查、编辑、评论等的答案......)

循环没有明显的问题。

第一步是分析代码以找出慢的部分,然后你就可以弄清楚如何处理它。

这里有一些猜测可能会导致它变慢......

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

我认为这是在与 WoW Armory 对话,这将涉及网络或数据库访问,getCharacter或者getGear可能会严重减慢速度。那将是您最可能的呆滞点。考虑缓存他们的结果,即使是几分钟。这个PHP WoW Armory 项目声称可以为您做到这一点,也许可以尝试一下?

  • $members 中有很多元素。

如果您可以向您的 API 询问级别为 90 的成员列表,而不是自己遍历所有成员,那么这可能会更有效,具体取决于您的 API 如何进行搜索。

但先介绍一下。

于 2012-10-19T01:44:33.553 回答