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

相关推荐
静听山水38 分钟前
Redis的Pipeline (管道)
数据库·redis·php
hzb666661 小时前
unictf2026
开发语言·javascript·安全·web安全·php
JaguarJack1 小时前
PHP 应用遭遇 DDoS 攻击时会发生什么 从入门到进阶的防护指南
后端·php·服务端
YUJIANYUE11 小时前
PHP纹路验证码
开发语言·php
MZ_ZXD00112 小时前
springboot旅游信息管理系统-计算机毕业设计源码21675
java·c++·vue.js·spring boot·python·django·php
JMchen12314 小时前
Android后台服务与网络保活:WorkManager的实战应用
android·java·网络·kotlin·php·android-studio
AZ996ZA17 小时前
自学linux的第二十一天【DHCP 服务从入门到实战】
linux·运维·服务器·php
darkb1rd19 小时前
八、PHP SAPI与运行环境差异
开发语言·网络安全·php·webshell
darkb1rd20 小时前
七、PHP配置(php.ini)安全最佳实践
安全·php·webshell
JSON_L20 小时前
Fastadmin中使用GatewayClient
php·fastadmin