可以。两种合并方法:1、使用array_push()函数,可向数组尾部插入另一个数组,语法“array_push(数组1, 数组2)”;2、使用array_merge_recursive()函数,用于把一个或多个数组合并为一个数组,遇到相同键时会将该键中值合并为一个子数组,语法“array_merge_recursive(数组1, 数组2)”。

本教程操作环境:windows7系统、PHP8.1版、DELL G3电脑

php数组合并保留全部元素,就是在合并数组时,如果键相同的情况下,后面数组的值不覆盖前面数组的值。

下面介绍两种php数组合并保留全部元素的方法。

方法1:使用array_push()函数

array_push()函数用于向数组尾部插入一个或多个元素

array_push(array,value1,value2...)
参数描述
array必需。规定一个数组。
value1必需。规定要添加的值。
value2可选。规定要添加的值。

array_push()函数可以将某个变量放入到另一个数组当中,当该变量为一个数组时,即可向数组尾部插入一个数组。

<?php
header('content-type:text/html;charset=utf-8');
$a = [1,'a'=>'aa',2,'b'=>'bb'];
$b = [2,'a'=>'aaa',4,'b'=>'bb'];
var_dump($a);
var_dump($b);
echo "数组合并后:";
array_push($a, $b);
var_dump($a);
?>

1.png

方法2:使用array_merge_recursive()函数

array_merge_recursive() 函数用于把一个或多个数组合并为一个数组。

该函数与 array_merge() 函数之间的不同是在处理两个或更多个数组元素有相同的键名的情况。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

即合并数组,遇到相同的键将该键中值合并为一个子数组。

<?php
header('content-type:text/html;charset=utf-8');
$a = [1,'2'=>2,'a'=>'a','b'=>'b'];
$b = [1,'2'=>3,'a'=>'a','b'=>'d','c'=>'e'];

var_dump($a);
var_dump($b);
echo "数组合并后:";
$c = array_merge_recursive($a,$b);
var_dump($c);
?>

2.png


php数组合并保留全部元素可以吗