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

时间:2010-08-03 02:13:50

标签: php arrays

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

所以我说我有

[2] = abc
[5] = cde

我有

[32] = fge
[13] = def

我想将这两者合并在一起,维护唯一的密钥。

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

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

5 个答案:

答案 0 :(得分:16)

尝试使用+运算符。

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

$three现在看起来应该是这样的:

[2] = abc
[5] = cde
[32] = fge
[13] = def

答案 1 :(得分:6)

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

$a = array(0 => "a", 1 => "b"); 
$b = array(1 => "c", 5 => "d"); 
var_dump(array_diff_key($a, $b) + $b);

将产生:

array(3) {   
  [0]=>
  string(1) "a"
  [1]=>
  string(1) "c"
  [5]=>
  string(1) "d"
}

答案 2 :(得分:2)

答案 3 :(得分:1)

$result = array(2 => 'abc', 5 => 'cde') + array(32 => 'fge', 13 => 'def');
print_r($result);

答案 4 :(得分:0)

试试这个:

$arr1 = array();
$arr2 = array();
$arrmerge = array();
array_push($arr, $arr1, $arr2);
$ arr1和$ arr2将合并并存储在$ arrmerge中。您可以通过foreach访问它。

希望它有效!