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

相关推荐
汉堡包0013 小时前
【网安基础】--内网代理转发基本流程(正向与反向代理)
安全·web安全·php
梁辰兴6 小时前
计算机网络基础:TCP 的拥塞控制
tcp/ip·计算机网络·php·tcp·拥塞控制·计算机网络基础·梁辰兴
Vect__12 小时前
TCP Socket编程详解
网络协议·tcp/ip·php
REDcker12 小时前
TCP 拥塞控制算法详解:CUBIC、BBR 及传统算法
tcp/ip·算法·php
小学导航员14 小时前
VMWARE虚拟机上不了网络
服务器·网络·php
上海合宙LuatOS15 小时前
LuatOS ——fota 升级教程
开发语言·人工智能·单片机·嵌入式硬件·物联网·php·硬件工程
AI量化价值投资入门到精通16 小时前
数据清洗:大数据领域的必备技能
大数据·开发语言·ai·php
小邓睡不饱耶18 小时前
基于Spark GraphX构建用户信任网络:精准定位高价值目标用户
大数据·spark·php
toooooop81 天前
php BC MATH扩展函数计算精度-第三个参数
开发语言·php
青岑CTF1 天前
攻防世界-Php_rce-胎教版wp
开发语言·安全·web安全·网络安全·php