- array_map: documentation ( source)
- usleep: documentation ( source)
- microtime: documentation ( source)
- array_walk: documentation ( source)
- md5: documentation ( source)
<?php
$array = array();
$l = 100;
for($i = 0; $i< $l; $i++) {
$array[$i] = md5($i);
}
$copy = $array;
$start = microtime(true);
for($i = 0; $i< $l; $i++) {
$copy[$i] = $copy[$i] . ' x';
usleep(1);
}
echo "\nfor:" . (microtime(true) - $start);
$copy = $array;
$start = microtime(true);
foreach ($copy as $i => $item) {
$copy[$i] = $item . ' x';
usleep(1);
}
echo "\nforeach (ohne ref):" . (microtime(true) - $start);
$copy = $array;
$start = microtime(true);
foreach ($copy as &$item) {
$item .= ' x';
usleep(1);
}
echo "\nforeach (mit ref):" . (microtime(true) - $start);
$copy = $array;
$start = microtime(true);
array_walk($copy, function (&$item, $i) {
$item .= ' x';
usleep(1);
});
echo "\narray_walk (mit ref):" . (microtime(true) - $start);
$copy = $array;
$start = microtime(true);
$copy = array_map(function ($item) {
usleep(1);
return $item . ' x';
}, $copy);
echo "\narray_map (ohne ref):" . (microtime(true) - $start);