合并两个数组,同时保持数字键

Roe*_*and 9 php arrays

我试图将两个数组合并在一起.两者都有数字键,是唯一的.当我使用array_merge时,它从0开始重新索引.

所以我要说

[2] = abc
[5] = cde
Run Code Online (Sandbox Code Playgroud)

我有

[32] = fge
[13] = def
Run Code Online (Sandbox Code Playgroud)

我想将这两者合并在一起,保持唯一的键.

下面是对当前合并行为的解释..任何解决方法?

"如果所有数组只包含数字键,则结果数组从零开始递增键."

Mat*_*ins 16

尝试使用+运算符.

$one = array(2 => 'abc', 5 => 'cde');
$two = array(32 => 'fge', 13 => 'def');
$three = $one + $two;
Run Code Online (Sandbox Code Playgroud)

$three 现在应该是这样的:

[2] = abc
[5] = cde
[32] = fge
[13] = def
Run Code Online (Sandbox Code Playgroud)


小智 6

如果要使用数字键合并数组,请保留键并使用第二个项中的项覆盖第一个数组中的项:

$a = array(0 => "a", 1 => "b"); 
$b = array(1 => "c", 5 => "d"); 
var_dump(array_diff_key($a, $b) + $b);
Run Code Online (Sandbox Code Playgroud)

将产生:

array(3) {   
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "c"
  [5]=>
  string(1) "d"
}
Run Code Online (Sandbox Code Playgroud)