在另一个数组的任意位置插入新项的数组


insert array of new item in any position in another array

如何向数组添加新项?例如进入数组的中间?我们应该使用array splice还是array merge
你能解释一下这两种功能的区别吗?

假设我有

$a1=array("a"=>"Horse","b"=>"Dog","c"=>"Cow",);
$a2=array("d"=>"Cat");

现在我需要在2个位置添加$a2。

我应该用哪一个?

您可以使用array_splice,但不会保留您的密钥。

$a1 = array("a"=>"Horse", "b"=>"Dog", "c"=>"Cow");
$a2 = array("d"=>"Cat");
array_splice($a1, 2, 0, $a2);
// $a1 is now: array("a"=>"Horse", "b"=>"Dog", 0=>"Cat", "c"=>"Cow");

如果希望Cat的密钥为d,则可以混合使用array_slice和数组并集运算符(+):

$a1 = array_slice($a1, 0, 2) + $a2 + array_slice($a1, 2);
// $a1 is now: array("a"=>"Horse", "b"=>"Dog", "d"=>"Cat", "c"=>"Cow");

您可以使用array_push在任意位置添加数组。。array_splice也可以使用
示例:array_splice