如何在PHP数组的指定位置动态添加键值对?
在PHP数组指定位置动态添加键值对
需求说明
需要在以下初始数组中,'action'键的后方插入键值对0 => 123:
[ 'controller' => 'tasks', 'action' => 'a', 'abc' => 'xyz' ]
期望得到的目标数组:
[ 'controller' => 'tasks', 'action' => 'a', 0 => 123, 'abc' => 'xyz' ]
尝试过的无效方法
以下写法均无法实现预期效果:
// array_merge($x['action'], [0=>123]); // 无效 // array_push($x['action'], [0=>123]); // 无效 // $x['action'][0] = 123; // 无效 // $x['action'][0] => 123; // 无效 // $x['action'] = [0 => 123]; // 无效 // array_merge($x, ['action' => [0 => 123]]); // 无效
可行解决方案(感谢@o1dskoo1)
通过遍历数组定位目标位置,利用array_splice完成插入操作:
$i = 1; foreach($array as $key => $value) { if($key == 'action') { array_splice($customUrl, $i, 0, 123); // 在位置$i处插入元素 } $i++; }
注:代码中
$customUrl需替换为实际操作的数组变量名(如初始数组的变量$x)。
内容的提问来源于stack exchange,提问作者TechFanDan
相关产品推荐
相关产品推荐

