欢迎访问宙启技术站
智能推送

PHP中的array_merge函数如何合并两个数组

发布时间:2023-05-31 11:17:57

在 PHP 中我们经常需要合并数组或对象,常见需求包括两个或多个数组中合并元素,从数据库中检索结果并将它们添加到数组中,或将来自各种来源的数组合并到一起。因此,PHP 提供了一个 array_merge() 函数来帮助我们完成这个工作。 本文将讲解如何使用 PHP 中的 array_merge() 函数合并两个数组,并介绍其用法和使用注意事项。

## array_merge() 函数

array_merge() 函数是 PHP 中的内置函数之一,用于将一个或多个数组的元素合并成一个数组。此函数用于将两个或多个数组合并成一个数组。合并后的新数组包含了所有输入数组的所有元素。在处理键值索引时,特别注意输入数组的键名将覆盖同名键名(如果有)的旧键值索引。

## 语法和参数

array_merge() 函数具有以下语法:

array_merge(array1, array2, …, arrayN)

参数说明:

- array1, array2, …, arrayN - 两个或多个要合并的数组。

例如:

$a = array("apple", "banana", "orange");
$b = array("pear", "strawberry");
$c = array_merge($a, $b);
print_r($c);

输出结果为:

Array ( [0] => apple [1] => banana [2] => orange [3] => pear [4] => strawberry )

## 数组合并的注意事项

array_merge() 函数有一些使用上的注意事项:

1. 输入数组的键名将覆盖同名键名(如果有)的旧键值索引。

2. 如果两个输入数组具有相同的键名,则后一个键将覆盖前一个键,并删除前一个键值索引,而不是将两个值合并为一个。

3. 如果输入数组中的键名为数字,则键将按照数字次序重新索引。重建是非常有用的,因为跳过删除的元素。

4. 如果您尝试合并两个具有相同数字的数组,则后一个数组中的元素将覆盖前一个数组中的元素。

## 合并多维数组

在 PHP 中,多维数组是指包含多个层次的数组,例如数组的元素可以是其他数组或对象等的数组。合并多维数组与合并一维数组类似,只要使用 array_merge() 函数并传入要合并的数组即可。

例如:

$arr1 = array(
    "key1" => array("apple", "banana"),
    "key2" => array("orange")
);
 
$arr2 = array(
    "key1" => array("pear"),
    "key2" => array("strawberry")
);
 
$result = array_merge($arr1, $arr2);
print_r($result);

输出结果为:

Array
(
    [key1] => Array
        (
            [0] => apple
            [1] => banana
            [2] => pear
        )
 
    [key2] => Array
        (
            [0] => orange
            [1] => strawberry
        )
)

如上所述,键名为 "key1" 的数组元素被合并为一个包含 "apple"、"banana" 和 "pear" 的数组。

## 总结

array_merge() 函数是 PHP 中用于将多个数组合并为单个数组的内置函数之一。执行此操作将使用输入数组的元素构造一个新的、包含所有输入数组元素的数组,并根据需要将相同的键名合并为一项。考虑输入数组的形式并遵循合并数组的注意事项,以确保正确合并所需的元素到单个数组中。