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
相关产品推荐
相关产品推荐

