Yad*_*ada 23 php arrays iteration
我正在攻读Zend PHP认证.
不确定这个问题的答案.
问题:使用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),因为不需要创建临时变量,然后我意识到它不适用于关联数组.进一步搜索网络发现:将不变数组计数存储在单独的变量中可以提高性能.
$cnt = count($array);
for ($i = 0; $i < $cnt; $i++) { }
Run Code Online (Sandbox Code Playgroud)
Ant*_*nna 20
从这些选项中,C将是明显的答案.
剩下的选项(除了A)可以用来实现,取决于括号内的代码,但问题不显示该代码.所以一定是C.
你正在回答错误的问题 - 是的,在for循环之前做count()会提高性能,但这个问题与性能无关.