您的位置:首页 > 编程语言 > PHP开发

php的数组遍历函数回调匿名函数

2011-11-10 20:34 274 查看
<?php
function microtime_float()
{
list($usec, $sec) = explode(" ", microtime());
return ((float)$usec + (float)$sec);
}

function test(&$n){
return $n*$n;
}

$time0 = microtime_float();
$a = array(1=>1, 2=>2, 3=>3, 4=>4, 5=>5);
$b = array_map(create_function('&$n','return $n=$n*$n;'), $a);
print_r($b);
$time1=microtime_float();
$a = array(1=>1, 2=>2, 3=>3, 4=>4, 5=>5);
$b=array();
foreach($a as $k=>$v){
$b[$k]=$v*$v;
}
print_r($b);
$time2=microtime_float();
$a = array(1=>1, 2=>2, 3=>3, 4=>4, 5=>5);
array_walk($a,create_function('&$n','return $n=$n*$n;'));
print_r($a);
$time3=microtime_float();
$a = array(1=>1, 2=>2, 3=>3, 4=>4, 5=>5);
$b = array_map('test', $a);
print_r($b);
$time4=microtime_float();
echo "</br>";
echo $time1-$time0;
echo "</br>";
echo $time2-$time1;
echo "</br>";
echo $time3-$time2;
echo "</br>";
echo $time4-$time3;
本以为array_walk,array_map的速度会快于foreach,可没想到速到是
array_map:0.00055694580078125
foreach:0.00015997886657715
array_walk:0.00047588348388672
array_map[named]:0.00042819976806641
愿闻指教!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: