php合并数组的几种方式 并简述其特点

目前工作中接触到的PHP数组合并方式主要有三种:

1、+操作符

2、array_merge()

3、array_merge_recursive()

它们的区别主要体现在对于相同键名(数字键名、字符串键名)的处理方式,

一 相同字符串键

php 复制代码
<?php

$arrFirst = [
    "first_key"  => 1,
    "second_key" => 1,
    "third_key"  => 1,
];

$arrSecond = [
    "first_key"  => 2,
    "second_key" => 2,
    "fourth_key" => 2,
];

//对于重复的字符串键,array_merge后,后面数组的键值会覆盖前面的
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));

//对于重复的字符串键,+操作后,前面数组的键值会覆盖后面的
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));

//对于重复的字符串键,array_merge_recursive后,相同键名的键值会被合并到同一数组中(会递归)
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));

运行结果:

二 相同数字键

php 复制代码
<?php

$arrFirst = [
    111 => "first",
    222 => "first",
    "first" //会指定默认的数字键223
];

$arrSecond = [
    111 => "second",
    333 => "second",
    "second" //会指定默认的数字键334
];

//对于重复的数字键,+操作后,前面数组的键值会覆盖后面的,保留之前数字键
echo sprintf("\narray + result:\n%s", print_r($arrFirst + $arrSecond, true));

//对于重复的数字键,array_merge后,重排数字键,不会覆盖
echo sprintf("\narray_merge result:\n%s", print_r(array_merge($arrFirst, $arrSecond), true));

//对于重复的数字键,array_merge_recursive后,重排数字键,不会覆盖
echo sprintf("\narray_merge_recursive result:\n%s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));

运行结果

相关推荐
用户41659673693554 分钟前
存量项目如何拥抱 KMP?从环境搭建到组件化集成的保姆级指南
android
动感小麦兜7 分钟前
NAS学习
java·开发语言·eureka
zorro_z21 分钟前
ThinkPHP8学习篇(十三):视图
php
小安同学iter23 分钟前
天机学堂day05
java·开发语言·spring boot·分布式·后端·spring cloud·微服务
c骑着乌龟追兔子30 分钟前
Day 32 函数专题1:函数定义与参数
开发语言·前端·javascript
yaoxin52112332 分钟前
262. Java 集合 - Java 中 ArrayList 与 LinkedList 读取元素性能大对决
java·开发语言
椰萝Yerosius34 分钟前
MATLAB简介
开发语言·数学建模·matlab
李日灐43 分钟前
C++STL:list(双链表)的底层实现 && 部分源码解析
开发语言·c++
sc.溯琛43 分钟前
计算机网络:概论学习1
网络·智能路由器·php
无限进步_1 小时前
C语言宏的魔法:探索offsetof与位交换的奇妙世界
c语言·开发语言·windows·后端·算法·visual studio