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

<?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
愿闻指教!
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值