我正在尝试进入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'];
}
}
我们想要它做的是获取所有成员的名字,然后为每个成员获取角色信息,然后还有它的装备,我只想检查一下,从我写的,它只做每个成员一次。
由于
答案 0 :(得分:1)
(将我的评论转化为适当的检查,编辑,评论等的答案......)
循环没有明显的错误。
第一步是profile the code找到什么位慢,然后你可以弄清楚该怎么做。
以下是一些猜测可能导致它变慢...
我认为这是与WoW Armory谈论的,它将涉及getCharacter
或getGear
的网络或数据库访问,这会严重减慢速度。那将是你最容易出现的迟缓。考虑缓存他们的结果,即使是几分钟。这PHP WoW Armory project声称可以为您做到这一点,也许可以尝试一下?
如果你可以向你的API索取90级成员列表,而不是自己迭代它们,那么根据你的API搜索方式,这可能会更有效。
但首先是个人资料。