为什么标准的foreach循环更快?

时间:2014-05-02 14:19:55

标签: php arrays foreach

我做了一个测试,并且发现标准foreach循环的执行速度明显快于使用数组方法,真是太过分了。

使用foreach

$std_dev = 0;
$mean = self::calc_stat_mean($array);

$start = microtime(true);

foreach ($array as $value)
{

    $std_dev += pow(($value - $mean), 2);

}

echo microtime(true) - $start;

使用数组方法:

$mean = self::calc_stat_mean($array);

$start = microtime(true);

$std_dev = array_sum(array_map(function($value) use ($mean) {

    return pow(($value - $mean), 2);

}, $array));

echo microtime(true) - $start;

有人可以告诉我为什么会这样吗?我觉得后一种方法看起来比前者更好,更清晰,但速度的打击并不值得。

1 个答案:

答案 0 :(得分:2)

差异很小,甚至不值得担心。

只需选择符合您编程风格的内容,您希望自己更喜欢,并且这样可以更好地适用于您的应用。

找到其他优化的地方......不要为每一个,每一个和一会儿压力!