在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()将提高性能,但此问题与性能无关。
相关文章