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));

运行结果

相关推荐
csbysj20209 分钟前
《Foundation 开关:深度解析其原理与应用》
开发语言
独角鲸网络安全实验室15 分钟前
本地信任成“致命漏洞”:数千Clawdbot Agent公网裸奔,供应链与内网安全告急
网络·网关·安全·php·漏洞·clawdbot·信任机制漏洞
梦里小白龙39 分钟前
java 通过Minio上传文件
java·开发语言
m0_5613596743 分钟前
基于C++的机器学习库开发
开发语言·c++·算法
星空露珠1 小时前
速算24点所有题库公式
开发语言·数据库·算法·游戏·lua
2401_832402751 小时前
C++中的类型擦除技术
开发语言·c++·算法
努力学习的小廉1 小时前
我爱学算法之—— 递归回溯综合(二)
开发语言·算法
sheji52611 小时前
JSP基于信息安全的读书网站79f9s--程序+源码+数据库+调试部署+开发环境
java·开发语言·数据库·算法
2301_763472461 小时前
C++网络编程(Boost.Asio)
开发语言·c++·算法
毕设源码-邱学长1 小时前
【开题答辩全过程】以 基于Java Web的电子商务网站的用户行为分析与个性化推荐系统为例,包含答辩的问题和答案
java·开发语言