- microtime: documentation ( source)
- array_merge: documentation ( source)
<?php
$classmap1 = array();
for ($i=1; $i<=100; $i++) {
$classmap1['a'.$i] = $i+1;
}
$classmap2 = array();
for ($i=1; $i<=100; $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);
abstract class merging {
public static function amerge(array &$a, array &$b)
{
$acopy = $a;
foreach ($b as $key => $value) {
$acopy[$key] = $value;
}
return $acopy;
}
}
$startTimeFunc = microtime(true);
merging::amerge($classmap1, $classmap2);
$endTimeFunc = microtime(true);
echo "Merging took " . (($endTimeMerge - $startTimeMerge)*1000) ." microseconds<br />\n";
//var_dump($map);
echo "Foreach took " . (($endTimeForeach - $startTimeForeach)*1000) ." microseconds<br />\n";
//var_dump($classmap1);
echo "Func took " . (($endTimeFunc - $startTimeFunc)*1000) ." microseconds<br />\n";
//var_dump($am);