php合并2个数组操作_php数组连接方法详解指南【解析】

星夢妙者
发布: 2025-12-18 20:39:38
原创
331人浏览过
PHP提供五种数组合并方法:一、array_merge()重索引数值键、覆盖同名关联键;二、+运算符保留首数组键、不覆盖不重排;三、array_merge_recursive()递归合并同名键值;四、splat运算符(...)展开拼接数值数组;五、array_replace()选择性替换存在键值。

php合并2个数组操作_php数组连接方法详解指南【解析】

如果您需要将两个 PHP 数组合并为一个数组,PHP 提供了多种原生函数和操作方式来实现这一目标。以下是几种常用且互不相同的数组合并方法:

一、使用 array_merge() 函数

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 被成功追加

三、使用 array_merge_recursive() 函数

该函数在遇到相同键名时,不会覆盖值,而是将值递归地合并为数组。适用于需保留所有同名键对应数据的场景,尤其适合多维数组合并。

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 运算符(...)展开合并(PHP 5.6+)

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() 函数

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在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号