从字符串或数组构建多维数组

时间:2012-02-13 15:43:13

标签: php arrays multidimensional-array

假设我有一个像这样的数组:

$my_array = array('a', 'b', 'c', 'd');

如何使用$ my_array

中的值构建多维数组

我的数组应如下所示:

$my_new_array = $new_array['a']['b']['c']['d'];

Array
(
    [a] => Array
    (
        [b] => Array
        (
            [c] => Array
            (
                [d] => Array
                (

                )
            )
        )
    )
)

谢谢

2 个答案:

答案 0 :(得分:2)

$my_array = array('a', 'b', 'c', 'd');
$size     = sizeof($my_array);
$output   = array();

for ( $i = $size - 1; $i >= 0; --$i ) {
  $output = array( $my_array[$i] => $output );
}

var_dump($output);

输出:

array(1) {
  ["a"]=>
  array(1) {
    ["b"]=>
    array(1) {
      ["c"]=>
      array(1) {
        ["d"]=>
        array(0) {
        }
      }
    }
  }
}

答案 1 :(得分:1)

这是一种替代方案,在创建过程中从外部到内部:

$my_array = array('a', 'b', 'c', 'd');
$multidimensional_array = array();
$array_reference = &$multidimensional_array;

foreach ( $my_array as $value ) {
    $array_reference = &$array_reference[$value];
} 

$array_reference = array();

echo "<pre>";
var_dump($multidimensional_array);
echo "</pre>";