假设我有一个关联数组,其键是字母字符串,如果我将某些内容合并到此数组,它将成功合并,而无需重新索引,如
$arr1 = array('john'=>'JOHN', 'marry'=>'Marry');
$arr1 = array_merge(array('78'=>'Angela'),$arr1);
print_r($arr1);
然后这将正确地将新组件合并到数组,其输出将是
Array
(
[0] => Angela
[john] => JOHN
[marry] => Marry
)
但是当我尝试这样的事情时
$arr1 = array('34'=>'JOHN', '04'=>'Marry');
$arr1 = array_merge(array('78'=>'Angela'),$arr1);
print_r($arr1);
然后它的输出就像这样
Array
(
[0] => Angela
[1] => JOHN
[04] => Marry
)
任何人都可以描述这种情况..... 此外,我希望我的数组在合并之后就像这样......
Array
(
[78] => Angela
[34] => JOHN
[04] => Marry
)
我怎样才能实现?
答案 0 :(得分:2)
根据定义array_merge将重新索引数字索引。带有数值的字符串也是数字索引。
要防止此行为,请使用$ arr1 + $ arr2
连接数组答案 1 :(得分:1)
您不需要使用array_merge()
,因为您只需添加数组:
$arr1 = [
'10' => 'Angela',
'john' => 'JOHN',
'marry' => 'Marry',
];
$arr2 = [
'78' => 'Angela'
];
$arr3 = $arr2 + $arr1;
array_merge() - 使用数字键输入数组中的值 重新编号 ,递增键从零开始在结果数组中。