如何使用PHP中的array_merge()函数合并多个数组?
array_merge()函数是PHP中用于合并多个数组的函数之一。它以相同的顺序接收两个或多个数组,并将它们合并成一个新数组,并返回该新数组。在此过程中,它也可以删除任何相同的键名,还可以重建整个数组索引以确保数字索引是连续的。
在PHP中,array_merge()函数常用于将两个或多个数组合并,以便在代码中输出所有信息。此外,您也可以使用它将两个数组中重复的键进行合并或者将两个数组中不同的键添加到一个数组中。
语法
array_merge(array1,array2,array3...);
其中array1、array2、array3……是需要合并的数组。这里可以传递多个数组,不限于两个数组。
现在,让我们来看看如何在PHP中使用array_merge()函数将两个数组合并在一起。
示例
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("shape" => "circle","color"=>"blue", 6, 8);
$result = array_merge($array1, $array2);
print_r($result);
?>
在上面的例子中,我们有两个数组:$array1和$array2。这些数组都包含数字和字符串键。第一个数组包含键“color”,值为“red”,数字键0和键1。第二个数组包含键“shape”,值为“circle”,键“color”,值为“blue”,数字键0和键1。
在调用array_merge()函数时,我们将两个数组合并在一起,并将结果存储在一个新变量$result中。我们使用print_r()函数输出结果:
Array
(
[color] => blue
[0] => 2
[1] => 4
[shape] => circle
[2] => 6
[3] => 8
)
在结果数组中,我们可以看到,键“color”从第一个数组中被删除,因为它在第二个数组中已经存在。而键值对“color”=>“blue”被添加到新的结果数组里。
您还可以传递多个数组到array_merge()中,这将所有项目合并到单个数组中:
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("shape" => "circle","color"=>"blue", 6, 8);
$array3 = array(10, "color" => "green", 12);
$result = array_merge($array1, $array2, $array3);
print_r($result);
?>
在上面的例子中,我们有三个数组:$array1,$array2和$array3。我们将这些数组全部传入到array_merge()函数中,然后将结果存储在$result变量中。下面是输出结果:
Array
(
[color] => green
[0] => 2
[1] => 4
[shape] => circle
[2] => 6
[3] => 8
[4] => 10
[5] => green
[6] => 12
)
在输出结果中,我们可以看到,键“color”从前两个数组中被删除,并从第三个数组中添加了“color”键值对。
当数组中的键名相同时,array_merge()函数将使用最后一个数组的值覆盖之前的值。
如果你需要将两个或多个数组合并,并使这些数组中的值保留原有的键名,那么你可以使用"+"操作符:
<?php
$array1 = array("color" => "red", 2, 4);
$array2 = array("shape" => "circle","color"=>"blue", 6, 8);
$result = $array1 + $array2;
print_r($result);
?>
在上面的例子中,我们使用"+"操作符合并数组,在输出结果时,我们可以看到,输出结果只包含原始数组中数组$1的所有键值对和第二个数组中不存在于第一个数组的键值对。
Array
(
[color] => red
[0] => 2
[1] => 4
[shape] => circle
[2] => 6
[3] => 8
)
总结
array_merge()函数表示,将多个数组合并在一起,并返回一个包含所有数据的新数组。可以传递多个数组,它将返回所有数据并将其放置在一个数组中。如果两个或多个数组的键相同,则最后一个数组的键将覆盖其它数组的键。在使用array_merge()函数时,传入的数组中的键名必须是唯一的。此函数不会递归、重建键或保留数据类型。为了在PHP中合并数组时保留数组的键,可以使用"+"号操作符。
