3v4l.org

run code in 300+ PHP versions simultaneously
<?php function merger($array1, $array2) { $result = array_merge($array1, $array2); } function spreader($array1, $array2) { $result = [...$array1, ...$array2]; } function uniter($array1, $array2) { $result = $array1 + $array2; } $array1 = []; $key = 'a'; for ($i = 0; $i < 500; ++$i) { $array1[++$key] = $i; } $array2 = []; for ($i = 500; $i < 1000; ++$i) { $array2[++$key] = $i; } $runs = 1000; // array_merge in loop $t0 = microtime(true); for ($i = 0; $i < $runs; ++$i) { merger($array1, $array2); } $tMerge = microtime(true); echo "merge: " . ($tMerge - $t0) . PHP_EOL; // array_merge with spread operator $t1 = microtime(true); for ($i = 0; $i < $runs; ++$i) { spreader($array1, $array2); } $tSpread = microtime(true); echo "spread: " . ($tSpread - $t1) . PHP_EOL; // union operator $t2 = microtime(true); for ($i = 0; $i < $runs; ++$i) { uniter($array1, $array2); } $tUnion = microtime(true); echo "union: " . ($tUnion - $t2);

preferences:
25.09 ms | 405 KiB | 5 Q