如何在不影响数组其他元素的前提下将键值对添加为数组首元素
实现方案
需求为不改动数组内原有元素的键、值和相对顺序,将一组键值对添加为数组的第一个元素。
原数组结构:
Array ( [8] => ab [10] => cd [11] => ef [9] => gh [7] => ik )
目标结果:
Array ( [0] => All [8] => ab [10] => cd [11] => ef [9] => gh [7] => ik )
直接使用PHP的数组联合运算符+就能实现,代码示例:
// 原数组 $list = [ 8 => 'ab', 10 => 'cd', 11 => 'ef', 9 => 'gh', 7 => 'ik' ]; // 首位插入新键值对 $list = [0 => 'All'] + $list;
注意事项
+运算符会把左侧数组的元素放在结果最前面,右侧数组的元素按原顺序拼接在后,全程不会对数组键做重新索引,原有非连续数字键、字符串键都能完整保留- 若左右数组存在重复键,会优先保留左侧数组的键值,不会被右侧元素覆盖,完全符合当前需求
- 不要用
array_unshift()、array_merge()处理这类场景,这两个函数会重置数字键索引,会把原数组的8、10这类键改成从0开始的连续数字,破坏原有结构。
内容的提问来源于stack exchange,提问作者gfdgdsf gsdgfdg
相关产品推荐
相关产品推荐

