You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP如何在数组指定键内添加新数据并保留原有内容

给PHP数组指定位置添加新键值对的几种方法

嘿,其实这个问题根本不用纠结那些看起来复杂的函数,几种简单方式就能搞定,我给你拆解下:

方法一:直接赋值(最简单直观)

因为$data[1]本身就是一个子数组,你直接给它新增键值对就行,原有内容会自动保留:

// 原始数组
$data[0] = ['a' => 'b'];
$data[1] = ['c' => 'd'];
$data[2] = ['e' => 'f'];

// 直接给$data[1]添加新键值对
$data[1]['xx'] = 'zz';

// 输出结果:$data[1] 变成 ['c' => 'd', 'xx' => 'zz']

这种方式最适合只加一两个键值对的场景,代码简洁到没朋友~

方法二:用array_merge()合并数组

如果你是要一次性添加多个键值对,可以用array_merge(),但要记得把合并后的结果重新赋值给$data[1],之前你可能没做这一步才没成功:

// 原始数组
$data[0] = ['a' => 'b'];
$data[1] = ['c' => 'd'];
$data[2] = ['e' => 'f'];

// 合并原数组和新键值对,重新赋值
$data[1] = array_merge($data[1], ['xx' => 'zz', 'yy' => 'mm']);

// 输出结果:$data[1] 变成 ['c' => 'd', 'xx' => 'zz', 'yy' => 'mm']

⚠️ 注意:如果新数组里有和原数组重复的键,array_merge()会用新数组的值覆盖原有的。

方法三:用+运算符合并

如果你想保留原数组的重复键值(也就是新数组里的重复键不会覆盖原数组的),可以用+运算符:

// 原始数组,假设$data[1]已有键'c'
$data[1] = ['c' => 'd'];

// 用+合并,新数组里的'c'不会覆盖原有的
$data[1] = $data[1] + ['c' => 'new_value', 'xx' => 'zz'];

// 输出结果:$data[1] 还是 ['c' => 'd', 'xx' => 'zz']

这个特性在你不想覆盖原有数据的时候特别有用。

内容的提问来源于stack exchange,提问作者Andy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 03:18:02