【发布时间】:2010-08-03 02:13:50
【问题描述】:
我试图将两个数组合并在一起。两者都有数字键并且是唯一的。当我使用 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
【讨论】:
如果您想将数组与数字键合并,请保留键并用第二个数组中的项覆盖第一个数组中的项:
$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"
}
【讨论】:
【讨论】:
$result = array(2 => 'abc', 5 => 'cde') + array(32 => 'fge', 13 => 'def');
print_r($result);
【讨论】:
试试这个:
$arr1 = array();
$arr2 = array();
$arrmerge = array();
array_push($arr, $arr1, $arr2);
$arr1 和 $arr2 将被合并并存储在 $arrmerge 中。你可以通过foreach访问它。
希望它有效!
【讨论】:
array($arr1, $arr2)。