foreach、array_map和array_reduce的执行效率

<?php

define(”ELEMENTS”, 10000);

function microtime_float() {

list($usec, $sec) = explode(” “, microtime());

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

}

$a = array();

for($i=0; $i<ELEMENTS; $i++) {

$a[] = array(’id’ => $i);

}

$iStart = microtime_float();

function mapfun($i) {

return $i['id'];

}

$r2 = array_map(”mapfun”, $a);

$iFinish = microtime_float();

$aCosts[] = $iFinish - $iStart;

$iStart = microtime_float();

$r1 = array();

foreach($a as $i) {

$r1[] = $i['id'];

}

$iFinish = microtime_float();

$aCosts[] = $iFinish - $iStart;

$iStart = microtime_float();

function reducefun($r, $i) {

$r[] = $i['id'];

return $r;

}

$r3 = array_reduce($a, “reducefun”);

$iFinish = microtime_float();

$aCosts[] = $iFinish - $iStart;

var_dump($aCosts);

?>

留下回复