Search code examples
phparraysmultidimensional-arraymergeprepend

Add a static value to each row in a 2d array


I have a 2d array as illustrated below:

[
    [1, 2, 3],
    [4, 5, 6],
]

I'm trying to prepend a column to it as illustrated below:

[
    ['X', 1, 2, 3],
    ['X', 4, 5, 6],
]

Using array_unshift() will cause the elements to become shuffled and I need their order to be retained. I also tried array_merge() as well as "adding" the new column with the existing array.

What's the best way to accomplish this?


Solution

  • $arr = array(
        array(1,2,3),
        array(4,5,6)
    );
    
    foreach($arr as $k => $v){
        array_unshift($arr[$k],"X");
    }
    print_r($arr);