在PHP中迭代数组的最快方法

2022-02-24 00:00:00 arrays iteration php

我正在学习Zend PHP certification。

我不确定此问题的答案。

问题:使用PHP 5迭代和修改数组的每个元素的最佳方式是什么?

a)迭代期间不能修改数组

b)for($i = 0; $i < count($array); $i++) { /* ... */ }

c)foreach($array as $key => &$val) { /* ... */ }

d)foreach($array as $key => $val) { /* ... */ }

e)while(list($key, $val) = each($array)) { /* ... */ }


我的直觉是(B),因为不需要创建临时变量,但随后我意识到它不适用于关联数组。

在Internet上进一步搜索,我发现了这个:

将不变数组计数存储在单独的变量中可提高性能。

$cnt = count($array);
for ($i = 0; $i < $cnt; $i++) { }

解决方案

从这些选项中,C将是显而易见的答案。

其余选项(A除外)可用于实现此目的,具体取决于括号内的代码,但问题不会显示该代码。所以一定是C。

并且您回答错了问题-是的,在for循环之前执行count()将提高性能,但此问题与性能无关。

相关文章