即时尝试将两个数组合并在一起。都有数字键并且是唯一的。当我使用array_merge,它重新索引从0开始。合并两个数组,同时保持数字键
所以可以说我有
[2] = abc
[5] = cde
和我有
[32] = fge
[13] = def
我想合并这两个一起保持唯一的密钥。
下面是对当前合并行为的解释..有什么办法可以解决这个问题?
“如果所有数组都只包含数字键,则结果数组会从零开始递增键”。
即时尝试将两个数组合并在一起。都有数字键并且是唯一的。当我使用array_merge,它重新索引从0开始。合并两个数组,同时保持数字键
所以可以说我有
[2] = abc
[5] = cde
和我有
[32] = fge
[13] = def
我想合并这两个一起保持唯一的密钥。
下面是对当前合并行为的解释..有什么办法可以解决这个问题?
“如果所有数组都只包含数字键,则结果数组会从零开始递增键”。
尝试使用+
运算符。
$one = array(2 => 'abc', 5 => 'cde');
$two = array(32 => 'fge', 13 => 'def');
$three = $one + $two;
$three
现在应该是这样的:
[2] = abc
[5] = cde
[32] = fge
[13] = def
试试这个:
$arr1 = array();
$arr2 = array();
$arrmerge = array();
array_push($arr, $arr1, $arr2);
$ ARR1和$ ARR2将合并,并存储在$ arrmerge。您可以通过foreach访问它。
希望它的作品!
$result = array(2 => 'abc', 5 => 'cde') + array(32 => 'fge', 13 => 'def');
print_r($result);
如果要合并与数字键排列,保持键和从第二个项目覆盖从第一数组项:
$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"
}
其实也没什么,这会创建一个多维数组'array($ arr1,$ arr2)'。 – deceze 2010-08-03 02:40:50