如何从变量分配多维数组


How to assign multi dimentional array from a variable

$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;
有什么办法可以做到这一点吗?

这可能是一个解决方案,

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

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

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