php array_walk array_map
效率对比
可以选用array_walk array_map foreach for
产生数组
$max = 100000;
$arr = range(0, $max);
for
0.020256996154785
0.019799947738647
0.020244121551514[
// for
$temp = 0;
$t1 = microtime(true);
for ($i = 0; $i < $max; $i++)
{
callback($arr[$i]);
}
$t2 = microtime(true);
foreach
0.017144918441772
0.017565965652466
0.02012300491333
$temp=0;
$t1 = microtime(true);
foreach ($arr as $value) {
callback($value);
}
$t2 = microtime(true);
echo $t2 - $t1;
array_walk
0.02513313293457
0.024876832962036
0.026274919509888
$temp=0;
$t1 = microtime(true);
array_walk($arr,function() use($temp){
$temp++;
});
$t2 = microtime(true);
echo $t2 - $t1;
array_map
0.026141166687012
0.027121782302856
0.021435022354126
$temp=0;
$t1 = microtime(true);
array_map('callback',$arr);
$t2 = microtime(true);
echo $t2 - $t1;
function callback($value){
global $temp;
$temp++;
}
测试结论
网上有很多号称array_map比较快,经过实测发现实际结果是
foreach = for > array_walk = array_map
当然性能相差太小了
10000个循环才这点差距,我也不想说啥了
最后更新于 2018-07-01 06:39:03 并被添加「PHP array_walk array_map」标签,已有 717 位童鞋阅读过。
此处评论已关闭