假设我有一个关联数组,它的键是字母字符串,如果我将一些内容合并到这个数组中,它将成功合并,而不需要重新索引,如下所示
$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
)我怎样才能做到这一点呢?
发布于 2017-04-22 23:42:32
根据定义,array_merge将对数字索引进行重新索引。带有数值的字符串也是数值索引。
要防止此行为,请使用$arr1+$arr2连接数组
发布于 2017-04-22 23:39:52
您不需要使用array_merge(),因为您可以简单地添加数组:
$arr1 = [
'10' => 'Angela',
'john' => 'JOHN',
'marry' => 'Marry',
];
$arr2 = [
'78' => 'Angela'
];
$arr3 = $arr2 + $arr1;- ...带有数字键的输入数组中的值将被重新编号为,并在结果数组中使用从零开始递增的键。
https://stackoverflow.com/questions/43561059
复制相似问题