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
愿闻指教!
相关文章推荐
- php 指针遍历、预定义数组和常用函数
- PHP将回调函数作用到给定数组单元的方法
- php-Arrays 函数-array_map-将回调函数作用到给定数组的单元上
- PHP学习笔记——使用数组的内部指针控制函数遍历数组
- PHP将回调函数作用到给定数组单元的方法
- php如何遍历多维的stdClass Object 对象,php的转换成数组的函数只能转换外面一丛数组
- PHP数组回忆笔记--遍历数组函数
- PHP 使用list函数each函数遍历数组(实现foreach)解析
- php数组,修改,遍历,函数等
- [PHP]将回调函数作用到给定数组的单元上
- 【小白笔记】PHP学习之路 (17) --通过回调函数得到数组交集或差集
- php遍历多维数组函数
- PHP基于数组的分页函数(核心函数array_slice())
- 使用java编写的一个遍历未知维数的数组函数
- php数组的相关处理函数(上)
- php遍历数组的4种方法总结
- PHP数组函数知识汇总
- php数组函数序列之array_pop() - 删除数组中的最后一个元素
- PHP学习笔记(3) 数组相关函数②.
- php-Arrays 函数-array_diff_uassoc-用回调函数做索引检查来计算数组的差值