PHP合并数组一般情况我们用到数组函数array_merge().
array_merge ---合并一个或者多个数组。
array_merge(array1.array2),
情况1: 键名为字符串类型,相同的键名合并后者会覆盖前者值,
<?php $arr1 = array('name'=>'test1'); $arr2 = array('name'=>'test2'); $result = array_merge($arr1, $arr2); print_r($result);
输出
Array ( [name] => test2 )
情况2: 键名为数字类型的,相同的键名合并后数组值不会被覆盖 ,但是键名会重新索引排序
<?php $arr1 = array(1=>'test1'); $arr2 = array(1=>'test2'); $result = array_merge($arr1, $arr2); print_r($result); ?>
输出
Array ( [0] => test1 [1] => test2 )
情况3:键名为数字类型的,值也相同,合并后键名重新索引,值不会覆盖
<?php $arr1 = array(1=>'test1',2=>6); $arr2 = array(1=>'test1',2=>6); $result = array_merge($arr1, $arr2); print_r($result); ?>
输出
Array ( [0] => test1 [1] => 6 [2] => test1 [3] => 6 )
情况4:如果想保留原来的数组键值对格式,不想合并后的键名改变,那么两个数组相加即可实现
注意:使用这种方法,不管键名是数字类型还是字符串类型,只要后者数组中的键名与前者相同,那么前者的值会覆盖后者的值,显示一个,不会重复显示键名相同的但是值不同的数据。
<?php $arr1 = array('a'=>'test1',5=>8); $arr2 = array('a'=>'test2',5=>9); $result = $arr1 + $arr2; print_r($result); ?>
输出
Array ( [a] => test1 [5] => 8 )
执行:
<?php $arr1 = array('a'=>'test1',5=>8); $arr2 = array('b'=>'test2','c'=>9); $result = $arr1 + $arr2; print_r($result); ?>
输出:
Array ( [a] => test1 [5] => 8 [b] => test2 [c] => 9 )