关于往数组添加数组并且保留键名
这个问题是朋友问我的,最后做出来了,我是一名小白,如有错或写的差勿喷,谢谢,直接上代码。
需求就是往数组添加数组并且保留键名,测试数据和需求如图

需求

这里需要了解到一个函数就是array_splice();
语法
array_splice(array,offset,length,array)参数 描述
array 必需。规定数组。
offset 必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。
length 可选。数值。如果省略该参数,则移除数组中从 offset 到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止 中间所有的元素。
array 被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。
提示和注释
提示:如果函数没有删除任何元素 (length=0),则替代数组将从 start 参数的位置插入。
代码如下:
1 <?php 2 $a = array( 3 '1' => '123', 4 '6' => '234', 5 '3' => '345' 6 ); 7 8 9 10 $c['top'] = array( 11 'id' => '1', 12 'name' => '我' 13 ); 14 array_splice($a, 2, 0, $c); 15 echo "<pre>"; 16 print_r($a); 17 ?>
得到数据是

没有达到我的需求,则使用foreach,进行改进代码:
<?php
$a = array(
'1' => '123',
'6' => '234',
'3' => '345'
);
$c['top'] = array(
'id' => '1',
'name' => '我'
);
array_splice($a, 2, 0, $c);
$res = [];
foreach ($a as $k => $v) {
$res[$k] = $v;
if($k == '2'){
$res['top'] = $c['top'];
unset($res[2]);
}
}
// echo "<pre>";
print_r($res);
?>
第一次写,请多多指教!!!

浙公网安备 33010602011771号