php foreach map,array_walk, array_map, foreach 性能测试比较

$chatbar_admin_list = array_combine(range(100000, 199999), range(200000, 299999));

$key_list = array_keys($chatbar_admin_list);

$start1_time = microtime_float();

$chatbar_new_admin_list = array();

array_walk($chatbar_admin_list, function ($value, $key) use (&$chatbar_new_admin_list) {

$chatbar_new_admin_list[$value][] = $key;

}, $key_list);

$end1_time = microtime_float();

echo 'array_walk :' . count($chatbar_new_admin_list). '; time :'. ($end1_time - $start1_time) ,PHP_EOL;

unset($chatbar_new_admin_list);

echo '------------------------------------------------------------------------------',PHP_EOL;

$start2_time = microtime_float();

array_map(function($value, $key) use (&$chatbar_new_admin_list) {

$chatbar_new_admin_list[$value][] = $key;

}, $chatbar_admin_list, $key_list);

$end2_time = microtime_float();

echo 'array_map :' . count($chatbar_new_admin_list). '; time :'. ($end2_time - $start2_time) ,PHP_EOL;

unset($chatbar_new_admin_list);

echo '------------------------------------------------------------------------------',PHP_EOL;

$start_time = microtime_float();

$chatbar_new_admin_list = array();

foreach ($chatbar_admin_list as $key => $value) {

$chatbar_new_admin_list[$value][] = $key;

}

$end_time = microtime_float();

echo 'foreach :' . count($chatbar_new_admin_list). '; time :'. ($end_time - $start_time) ,PHP_EOL;

//时间计算

function microtime_float()

{

list($usec, $sec) = explode(" ", microtime());

return ((float)$usec + (float)$sec);

}

下面分别是在php7 和 php5.5 环境下的测试[root@## ~]#php7 test.php

array_walk :100000; time :0.065828084945679

------------------------------------------------------------------------------

array_map :100000; time :0.033947944641113

------------------------------------------------------------------------------

foreach :100000; time :0.016152143478394[root@## ~]#php test.php

array_walk :100000; time :0.1187047958374

------------------------------------------------------------------------------

array_map :100000; time :0.14281415939331

------------------------------------------------------------------------------

foreach :100000; time :0.047125816345215

在我当前测试场景下 foreach 性能碾压 array_walk, array_map 函数..

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值