- microtime: documentation ( source)
<?php
$classmap1 = array();
for ($i=1; $i<=5000; $i++) {
$classmap1['a'.$i] = $i+1;
}
$classmap2 = array();
for ($i=1; $i<=5000; $i++) {
$classmap2['b'.$i] = $i+1;
}
abstract class merging {
public static function merge(array $a, array &$b)
{
foreach ($b as $key => $value) {
if (isset($a[$key])) {
if (is_int($key)) {
$a[] = $value;
} elseif (is_array($value) && is_array($a[$key])) {
$a[$key] = static::merge($a[$key], $value);
} else {
$a[$key] = $value;
}
} else {
$a[$key] = $value;
}
}
return $a;
}
}
$startTimeFunc = microtime(true);
merging::merge($classmap1, $classmap2);
$endTimeFunc = microtime(true);
echo "Func took " . (($endTimeFunc - $startTimeFunc)*1000) ." microseconds<br />\n";