foreach是对数组副本进行操作(通过拷贝数组),而while则通过移动数组内部指标进行操作,一般逻辑下认为,while应该比foreach快(因为foreach在开始执行的时候首先把数组复制进去,而while直接移动内部指标。),但结果刚刚相反。
- 在循环里进行的是数组
reading操作,foreach比while快 - 在循环里进行的是数组
writing操作,while比foreach快
/**
* while跟foreach函数性能比较
* 琼台博客 www.qttc.net
*/
// foreach 函数
foreach ($array as $key => $value) {
echo $array[$key] = $value . '...';
}
// while 函数
while (list($key) = each($array)) {
$array[$key] = $array[$key] . '...';
}
...
