2012-02-13 55 views
-1

多维数组让我们说我有一个数组,像这样:建立从字符串或数组

$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 
       (

       ) 
      ) 
     ) 
    ) 
) 

谢谢

+0

你尝试过这么远吗?我知道你可以用[递归函数](http://en.wikipedia.org/wiki/Recursion_(computer_science))很容易地完成这个任务。 – meagar 2012-02-13 15:47:49

回答

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

这是一种选择,在创建过程中,从外部将内部:

$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>"; 
+0

'$ array_reference [$ value] = array();'你的循环内部不需要。 – Leigh 2012-02-13 16:34:10

+0

是的,但这一行$ array_reference = array();必须添加在foreach的末尾,否则,最内层的数组引用将为NULL – bitfox 2012-02-13 18:26:50