我有一个2d数组,如下所示:
|1|2|3|
|4|5|6|
我正试图为它准备一个专栏,如下所示:
|X|1|2|3|
|X|4|5|6|
使用1array_unshift()CCD_;添加";新列与现有数组。
实现这一目标的最佳方法是什么?
从评论中发布。试试这个。链接
$arr = array(
array(1,2,3),
array(4,5,6)
);
foreach($arr as $k => $v){
array_unshift($arr[$k],"X");
}
print_r($arr);
您可以像一样使用array_map
和array_push
$arr = [[1, 2, 3], [4, 5, 6]];
$result = array_map(function($v, $a) {
$v = array_merge([$a],$v);
return $v;
}, $arr, ['X', 'X']);
print_r($result);
演示
对于一个现代的函数式代码段,请对包含新值和原始数组的动态生成的数组进行array_merge()
的迭代调用。
代码:(演示)
var_export(
array_map(
'array_merge',
array_fill(0, count($array), ['X']),
$array
)
);
或者:(演示)
var_export(
array_map(
fn($row) => array_merge(['X'], $row),
$array
)
);
对于简洁、经典的循环,在迭代时通过引用修改原始元素/行。同样,这种方法会修改原始数组。
代码:(演示)
foreach ($array as &$row) {
array_unshift($row, 'X');
}
var_export($array);
如果要将数据附加到每一行的末尾,则在array_merge()
调用中反转行和静态数据的顺序:array_map(fn($row) => array_merge($row, ['X']))
。
使用非数字键合并数据时,可以使用并集运算符(+
)进行合并,而不是使用array_merge()
或array_replace()
。如果使用并集运算符,请注意共享密钥不会妨碍在结果中使用所需的值。