我想指出,虽然其他评论指出扩展运算符应该比 array_merge 快,但我实际上发现对于普通数组而言情况正好相反。在 PHP 7.4 和 PHP 8.0 中都是如此。对于大多数应用程序来说,差异应该可以忽略不计,但我希望为了准确性而指出这一点。
以下是用于测试的代码以及结果
<?php
$before = microtime(true);
for ($i=0 ; $i<10000000 ; $i++) {
$array1 = ['apple','orange','banana'];
$array2 = ['carrot','lettuce','broccoli'];
$array1 = [...$array1,...$array2];
}
$after = microtime(true);
echo ($after-$before) . " sec for spread\n";
$before = microtime(true);
for ($i=0 ; $i<10000000 ; $i++) {
$array1 = ['apple','orange','banana'];
$array2 = ['carrot','lettuce','broccoli'];
$array1 = array_merge($array1,$array2);
}
$after = microtime(true);
echo ($after-$before) . " sec for array_merge\n";
?>
PHP 7.4
1.2135608196259 sec for spread
1.1402177810669 sec for array_merge
PHP 8.0
1.1952061653137 sec for spread
1.099925994873 sec for array_merge