PHP数组合并的各种方法?

47次阅读
没有评论

PHP 数组合并有以下几种方法:

1. 使用 “+” 运算符

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$result = $array1 + $array2;
print_r($result);

输出结果:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)

注意,使用 “+” 运算符合并数组时,如果两个数组含有相同的键名,则第一个数组中的值会被保留,而忽略第二个数组中的值。

2. 使用 array_merge() 函数

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$result = array_merge($array1, $array2);
print_r($result);

输出结果:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)

注意,使用 array_merge() 函数合并数组时,如果两个数组含有相同的键名,则后面的键名会覆盖前面的键名。

3. 使用 array_merge_recursive() 函数

$array1 = array('color' => array('favorite' => 'red'), 5);
$array2 = array(10, 'color' => array('favorite' => 'green', 'blue'));
$result = array_merge_recursive($array1, $array2);
print_r($result);

输出结果:

Array
(
    [color] => Array
        (
            [favorite] => Array
                (
                    [0] => red
                    [1] => green
                )

            [0] => blue
        )

    [0] => 5
    [1] => 10
)

注意,使用 array_merge_recursive() 函数合并数组时,如果两个数组含有相同的键名,并且这些键所关联的值不是标量(scalar),它们将会合并为一个数组。

4. 使用 “+” 运算符和 array_diff_key() 函数

$array1 = array('a', 'b', 'c');
$array2 = array('d', 'e', 'f');
$diff = array_diff_key($array2, $array1);
$result = $array1 + $diff;
print_r($result);

输出结果:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
    [4] => e
    [5] => f
)

注意,这种方法利用 array_diff_key() 函数找出数组2中不在数组1中的键,然后将它们与数组1合并。

完整示例:

正文完
 
评论(没有评论)