可能重复:
for vs foreach vs while which is faster for iterating through arrays in php
For each
和while
,其中哪些更快,推荐,以及它们的资源使用情况如何?
答案 0 :(得分:2)
foreach
针对集合的迭代进行了优化。当你将它与数组一起使用时(以及PHP5中的对象),这是一种花哨的方式,它说它最好(也是最快)。您可以使用while()
获得与foreach相同的效果,但效率不高,因为您需要在list()
循环内调用while
。
foreach($array as $key => $value)
撰写的 while
为while(list($key,$value) = each($array))
。您可以看到所需的额外呼叫数量。
答案 1 :(得分:1)
我认为他们应该有相同的速度。 我更喜欢foreach,因为它更安全。
答案 2 :(得分:1)
这可能取决于您如何准确使用它们。您可以选择通过引用传递数组foreach
循环。在这种情况下,将不会制作整个阵列的副本。像这样的优化可能比在foreach
和while
之间选择更有效。