使用array_merge()合并数组,键值重新索引

一、遇到的问题

使用array_merge()合并数组,键值重新索引了

二、解决

在 PHP 的 array_merge() 函数中,当数组的键是整数时,会重新索引数组。但是,并不会将键值重新排序。

array_merge() 函数会按照参数的顺序将数组合并到结果数组中,并为新数组的整数键分配递增的连续索引值。

以下是一个示例:

$array1 = array(1 => 'a', 2 => 'b'); $array2 = array(3 => 'c', 4 => 'd'); $result = array_merge($array1, $array2); print_r($result);

输出结果为:

Array ( [0] => a [1] => b [2] => c [3] => d )

可以看到,数组的整数键已被重新索引,并按照从 0 开始的连续整数进行分配。

方案一:如果你希望保留原始的整数键值不被重新索引,可以考虑使用 + 运算符来合并数组:

$array1 = array(1 => 'a', 2 => 'b'); $array2 = array(3 => 'c', 4 => 'd'); $result = $array1 + $array2; print_r($result);

输出结果为:

Array ( [1] => a [2] => b [3] => c [4] => d )

使用 + 运算符合并数组时,如果两个数组具有相同的键名,保留第一个数组中的键值。

方案二:把整型数组转为字符串后再使用array_merge()

相关推荐
小此方3 小时前
Linux网络(二十):TCP拥塞控制与延迟应答详解:从拥塞窗口到TCP性能优化,理解TCP与UDP的效率差异
linux·网络·php
专业程序开发源4 小时前
springboot高校学生社团管理系统74810-计算机课程设计、毕业设计
java·vue.js·spring boot·后端·spring·php·课程设计
AC赳赳老秦5 小时前
OpenClaw 与 FineBI 联动方案:公开数据自动采集与实时业务分析看板实践
大数据·开发语言·python·php·finebi·deepseek·openclaw
AIGC小尼5 小时前
8G 显存零基础本地部署 AI 漫剧全流程|ComfyUI+Wan2.2+FFmpeg 离线成片完整方案(含代码 / 指令 / 排坑)
人工智能·ffmpeg·php·comfyui·ai漫剧
新鲜势力呀6 小时前
PHP 文件上传系统实战:从上传卡顿到分片上传 + 秒传 + 云存储架构完整优化方案
开发语言·架构·php
专业程序开发源6 小时前
flask动漫推荐系统32319-计算机课程设计、毕业设计
java·spring boot·后端·django·flask·php·课程设计
寺中人1 天前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
hengdonghui1 天前
Writeup 4 津门杯 2021 Web hate_php
php·web·ctf·通配符
现任明教教主~1 天前
企业查询系统源码
php
派小心.1 天前
页面关闭前埋点丢失:sendBeacon验收
开发语言·php