- microtime: documentation ( source)
- array_merge: documentation ( source)
<?php
$classmap1 = array();
for ($i=1; $i<=10000; $i++) {
$classmap1['a'.$i] = $i+1;
}
$classmap2 = array();
for ($i=1; $i<=10000; $i++) {
$classmap2['b'.$i] = $i+1;
}
$startTimeMerge = microtime(true);
$map = array_merge($classmap1, $classmap2);
$endTimeMerge = microtime(true);
$startTimeForeach = microtime(true);
foreach ($classmap2 as $k => $v) {
$classmap1[$k] = $v;
}
$endTimeForeach = microtime(true);
function amerge(array $a, array $b, $performance = false)
{
foreach ($b as $key => $value) {
$a[$key] = $value;
}
return $a;
}
$startTimeFunc = microtime(true);
amerge($classmap1, $classmap2, true);
$endTimeFunc = microtime(true);
echo "Merging took " . (($endTimeMerge - $startTimeMerge)*1000) ." microseconds<br />\n";
echo "Foreach took " . (($endTimeForeach - $startTimeForeach)*1000) ." microseconds<br />\n";
echo "Func took " . (($endTimeFunc - $startTimeFunc)*1000) ." microseconds<br />\n";