PHP提供五种数组合并方法:一、array_merge()重索引数值键、覆盖同名关联键;二、+运算符保留首数组键、不覆盖不重排;三、array_merge_recursive()递归合并同名键值;四、splat运算符(...)展开拼接数值数组;五、array_replace()选择性替换存在键值。

如果您需要将两个 PHP 数组合并为一个数组,PHP 提供了多种原生函数和操作方式来实现这一目标。以下是几种常用且互不相同的数组合并方法:
array_merge() 是最常用的数组合并函数,它会将一个或多个数组的键值对合并到一个新的数组中。对于数值索引数组,它会重新索引;对于关联数组,相同键名的值会被后一个数组的值覆盖。
1、定义第一个数组:$arr1 = ['a', 'b'];
2、定义第二个数组:$arr2 = ['c', 'd'];
立即学习“PHP免费学习笔记(深入)”;
3、调用函数合并:$result = array_merge($arr1, $arr2);
4、输出结果:print_r($result); 输出为 Array ( [0] => a [1] => b [2] => c [3] => d )
加号运算符用于合并关联数组,它会保留第一个数组的键值对,仅将第二个数组中**不存在于第一个数组中的键**添加进来,不会覆盖已有键,也不会重排数字索引。
1、定义第一个关联数组:$arr1 = ['name' => 'Alice', 'age' => 25];
2、定义第二个关联数组:$arr2 = ['city' => 'Beijing', 'age' => 30];
3、使用加号合并:$result = $arr1 + $arr2;
4、输出结果:print_r($result); 输出中 age 值仍为 25,city 被成功追加
该函数在遇到相同键名时,不会覆盖值,而是将值递归地合并为数组。适用于需保留所有同名键对应数据的场景,尤其适合多维数组合并。
1、定义第一个数组:$arr1 = ['user' => ['id' => 1]];
2、定义第二个数组:$arr2 = ['user' => ['name' => 'Bob']];
3、调用递归合并:$result = array_merge_recursive($arr1, $arr2);
4、输出结果:print_r($result); user 键下变为 ['id' => 1, 'name' => 'Bob'] 的一维数组
splat 运算符可将数组直接展开为参数列表,适用于数值索引数组的拼接,语法简洁,不支持关联键自动处理,需确保数组为纯数值索引。
1、定义两个数值索引数组:$arr1 = [1, 2]; $arr2 = [3, 4];
2、使用 splat 合并:$result = [...$arr1, ...$arr2];
3、验证类型:var_dump($result); 输出为 array(4) { [0]=> int(1) [1]=> int(2) [2]=> int(3) [3]=> int(4) }
array_replace() 用后续数组的值替换第一个数组中相同键的值,仅替换存在键,不添加新键,也不影响未匹配键,适用于有选择性覆盖需求的合并。
1、定义基础数组:$base = ['a' => 1, 'b' => 2, 'c' => 3];
2、定义替换数组:$replacements = ['b' => 20, 'd' => 40];
3、执行替换合并:$result = array_replace($base, $replacements);
4、输出结果:print_r($result); a 和 c 保持不变,b 被更新为 20,d 被添加,c 不被移除
以上就是php合并2个数组操作_php数组连接方法详解指南【解析】的详细内容,更多请关注php中文网其它相关文章!
PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号