array_merge 是否保留顺序?

Ale*_*shy 2 php

我有两个数组:

$arr = ["ham", "beef", "testing1"];
$arr1 = ["baby", "chicken", "wax"];
Run Code Online (Sandbox Code Playgroud)

合并它们时我得到以下结果:

var_dump(array_merge($arr, $arr1));
// ["ham", "beef", "testing1", "baby", "chicken", "wax"]
Run Code Online (Sandbox Code Playgroud)

如您所见,顺序保持不变,并将它们添加到第一个数组的末尾。我可以确定情况总是如此吗?或者顺序不一定保留?我在文档中没有找到有关结果顺序的任何内容。

Edi*_*iba 5

您可以在文档中阅读更多内容:

将一个或多个数组的元素合并在一起,以便将其中一个的值附加到前一个数组的末尾。它返回结果数组。

正如您所看到的,第二个数组的值被附加到前一个数组的末尾。

对于重复的键,最后一个键将覆盖前一个键,如文档中所述:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值不会覆盖原始值,而是会附加到后面。

  • 需要注意的是,如果您有关联数组,第二个数组键可能会替换第一个数组中的键。对于替换键出现的顺序似乎没有任何保证,但我认为在使用关联数组时,顺序实际上并不重要。 (3认同)