Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Prepend to multidimensional associative array

I'm PHP beginner and have a question:

I have a multidimensional associative array:

array(
        "X" => array( "x1" => "1", "x2" => "2", "x3" => "3" ),
        "Y" => array( "y1" => "1", "y2" => "2", "y3" => "3" ),
        "Z" => array( "z1" => "1", "z2" => "2", "z3" => "3" )
)

and need to prepend "" => "" to every element X, Y, Z, so then it will be:

array(
            "X" => array( "" => "", "x1" => "1", "x2" => "2", "x3" => "3" ),
            "Y" => array( "" => "", "y1" => "1", "y2" => "2", "y3" => "3" ),
            "Z" => array( "" => "", "z1" => "1", "z2" => "2", "z3" => "3" )
)

X, Y, Z names are often changed, so I need to get a key name first and then add new value.

I think of using foreach somehow. I'm trying it, but can achieve it.

Thanks

like image 969
fred Avatar asked Jun 28 '26 08:06

fred


2 Answers

 <?php
    $temp = array(
       "X" => array( "x1" => "1", "x2" => "2", "x3" => "3" ),
       "Y" => array( "y1" => "1", "y2" => "2", "y3" => "3" ),
       "Z" => array( "z1" => "1", "z2" => "2", "z3" => "3" )
    );
    $you_array = array(); 
    foreach($temp  as $k=>$v){

       $v = array_merge([""=>""],$v); 
       $you_array[$k] = $v;
    }
    print_r($you_array);
 ?>
like image 198
andyron Avatar answered Jul 01 '26 00:07

andyron


check the following code:

<?php
$temp = array(
        "X" => array( "x1" => "1", "x2" => "2", "x3" => "3" ),
        "Y" => array( "y1" => "1", "y2" => "2", "y3" => "3" ),
        "Z" => array( "z1" => "1", "z2" => "2", "z3" => "3" )
);
$you_array = array(); 
foreach($temp  as $k=>$v){

    array_unshift($v, " "); 
    $you_array[$k] = $v;
}
print_r($you_array);
?>

Out put :

Array ( 

[X] => Array ( [0] => [x1] => 1 [x2] => 2 [x3] => 3 ) 

[Y] => Array ( [0] => [y1] => 1 [y2] => 2 [y3] => 3 ) 

[Z] => Array ( [0] => [z1] => 1 [z2] => 2 [z3] => 3 ) 

)
like image 40
Rajinder Avatar answered Jul 01 '26 00:07

Rajinder