<?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);
?>