php合并数组多种情况

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
)

猜你喜欢

转载自www.cnblogs.com/dayue/p/9765958.html
今日推荐