使用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()

相关推荐
RTC老炮31 分钟前
webrtc弱网-AlrDetector类源码分析与算法原理
服务器·网络·算法·php·webrtc
wheeldown2 小时前
【Linux】面试常考!Linux 进程核心考点:写时拷贝优化原理 + 进程等待实战,一篇理清进程一生
linux·运维·服务器·面试·php
zorro_z14 小时前
ThinkPHP8学习篇(六):数据库(二)
php
bug攻城狮1 天前
VMware 中 CentOS 7 设置静态 IP
tcp/ip·centos·php
最美不过下雨天啊1 天前
微信小程序发送订阅消息-一次订阅,一直发送消息。
微信小程序·php·一次性订阅·长期订阅
BingoGo1 天前
PHP serialize 序列化完全指南
后端·php
天高云淡ylz1 天前
子网掩码的隐形陷阱:为何能ping通却无法HTTPS访问
开发语言·php
乱飞的秋天2 天前
网络编程学习
网络·学习·php
Qlittleboy2 天前
tp5的tbmember表闭包查询 openid=‘abc‘ 并且(wx_unionid=null或者wx_unionid=‘‘)
数据库·sql·php
会飞的土拨鼠呀2 天前
Linux负载如何判断服务器的压力
linux·服务器·php