2012-02-13 54 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