<?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)
{
foreach ($b as $key => $value) {
if (array_key_exists($key, $a)) {print 111;die;
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);
amerge($classmap1, $classmap2);
$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";
- Output for 5.3.0 - 5.3.29, 5.4.0 - 5.4.45, 5.5.0 - 5.5.38, 5.6.0 - 5.6.28
- 111
- Output for 5.1.0 - 5.1.6, 5.2.0 - 5.2.17
- Parse error: syntax error, unexpected T_STATIC in /in/fbFkb on line 34
Process exited with code 255. - Output for 5.0.0 - 5.0.5
- Parse error: parse error, unexpected T_ARRAY, expecting '&' or T_VARIABLE in /in/fbFkb on line 27
Process exited with code 255. - Output for 4.4.2 - 4.4.9
- Parse error: syntax error, unexpected T_ARRAY, expecting ')' in /in/fbFkb on line 27
Process exited with code 255. - Output for 4.3.0 - 4.3.1, 4.3.5 - 4.3.11, 4.4.0 - 4.4.1
- Parse error: parse error, unexpected T_ARRAY, expecting ')' in /in/fbFkb on line 27
Process exited with code 255. - Output for 4.3.2 - 4.3.4
- Parse error: parse error, expecting `')'' in /in/fbFkb on line 27
Process exited with code 255.
preferences:
258.12 ms | 1395 KiB | 200 Q