哪个是更快的array_merge或array_splice来合并数组? (使用array_splice替换没有第二个具有合并效果的数组)
array_splice看起来可能使用较少的数组复制,因此它可能更快。有没有关于这一点的研究?
e.g。
array_splice($a1, count($a1), 0, $a2);
$a1 = array_merge($a1, $a2);
答案 0 :(得分:2)
array_merge
必须检查输入数组是否具有数字键或命名键,因此它知道是要追加还是合并。 array_splice
并不需要进行此项检查。
答案 1 :(得分:1)
$arguments = ["arg1" => "111", "arg2" => "222", "arg3" => "333"];
使用array_splice
= 3.273508(以秒为单位)
for ($i=0; $i < 1000000; $i++) {
$arguments = ["arg1" => "111", "arg2" => "222", "arg3" => "333"];
array_splice($arguments, 0, 0,[777]);
$arguments = [];
}
注意*
array_splice($arguments, count($arguments), 0,[777]);
与array_splice($arguments, 0, 0,[777]);
相同的时间=〜3.273508(以秒为单位)
输出
Array
(
[0] => 777
[arg1] => 111
[arg2] => 222
[arg3] => 333
)
使用array_merge
= 2.984012(以秒为单位)
for ($i=0; $i < 1000000; $i++) {
$arguments = ["arg1" => "111", "arg2" => "222", "arg3" => "333"];
$args = array_merge([777], $arguments);
$arguments = [];
}
输出
Array
(
[0] => 777
[arg1] => 111
[arg2] => 222
[arg3] => 333
)