如何从变量中分配多维数组

时间:2015-03-29 23:11:56

标签: php

$a[0][1]=1;
$a[0][5][1]=2;
$a[0][5][2]=3;
print_r($a);

以下代码生成输出

Array
(
    [0] => Array
     (
        [1] => 1
        [5] => Array
        (
            [1] => 2
            [2] => 3
         )

      )

  )

当我这样做时

    $a[0][1]=1;
    $a[0][5][1]=2;        
    $x='[0][5][2]';
    $a{$x}=3;        
    print_r($a);

输出

Array
(
[0] => Array
    (
        [1] => 1
        [5] => Array
            (
                [1] => 2
            )

    )

[[0][5][2]] => 3
)

但我希望输出与第一个相同。
我的数组索引来自一个变量,并被分配给$ a;
有没有办法做到这一点?

2 个答案:

答案 0 :(得分:0)

这可能是一个解决方案,

echo '<pre>';
$a[0][1]=1;
$a[0][5][1]=2;
$a[0][5][2]=3;
print_r($a);

foreach($a as $k=>$v){
    $new_array[$k]=$v;
}
print_r($new_array);

答案 1 :(得分:0)

我使用eval函数解决了这个问题。基本上我避免使用eval函数但没有找到任何其他方法。这是解决方案可能有助于其他

    $a[0][1]=1;
    $a[0][5][1]=2;
    $x='[0][5][2]';
    eval('$a'.$x.'=3;');
    print_r($a);