将一个静态值添加到2d数组中的每一行



我有一个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_maparray_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()。如果使用并集运算符,请注意共享密钥不会妨碍在结果中使用所需的值。

相关内容

  • 没有找到相关文章

最新更新