在多维关联数组中添加元素

3
我是PHP初学者,有一个问题:
我有一个多维关联数组:
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之前添加"" => "",这样它们就变成了:

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名称经常更改,因此我需要先获取键名,然后再添加新值。

我考虑使用foreach来实现,但是我还在尝试中。

谢谢。

4个回答

1
请检查以下代码:

<?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);
?>

输出:

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 ) 

)

1
 <?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);
 ?>

0

你可以使用array_unshift向数组中添加新元素。

正如你已经提到的,创建一个foreach循环,并将新元素添加到每个子数组中:

$new = array("new_key" => "");
foreach ($yourArray as $key => $value)
   array_unshift($yourArray[$key], $new);

注意:你的新元素需要一个键值。空键(如你所提到的)是不可能的。如果你只是添加一个没有键的新元素 array(""),它将会被以数字键 (0 => "") 的形式添加。已存在的数字键将被修改为从零开始计数。


0

我想这就是你要找的东西。

[akshay@localhost tmp]$ cat test.php
<?php
$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" )
);

// Input
print_r($array);

// & reference
foreach($array as &$sub_array)
{
    $sub_array = array(""=>"")+$sub_array;
}

// Output
print_r($array);
?>

输出

[akshay@localhost tmp]$ php test.php
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
        )

)
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
        )

)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接