2014-10-16 168 views
0

我有一個非常簡單的問題,但現在,我似乎無法圍繞它來包裹我的頭。將一維數組轉換爲多維數組

我有一維數組,例如:

$array = array("file", "video", "url") 

我想將其轉換爲:

$array["file"]["video"]["url"] = array(); 

現在,我不會提前知道我有多少元素將有在我的第一個數組中,所以我不能做出任何假設。此外,我不能使用樹結構來解決這個問題,它需要是一個數組。

回答

1

相當簡單打造

$array = array("file", "video", "url"); 

$newArray = array(); 
$newEntry = &$newArray; 
foreach($array as $value) { 
    $newEntry[$value] = array(); 
    $newEntry = &$newEntry[$value]; 
} 
unset($newEntry); 
var_dump($newArray); 
3

典雅,採用遞歸

function nested($keys, $value) { 
    return $keys ? 
     array($keys[0] => nested(array_slice($keys, 1), $value)) 
     : $value; 
} 

print_r(nested(array("file", "video", "url"), 42)); 
+0

唉唉42,生命值,宇宙和萬物的終極問題... :) – 2016-08-29 19:03:27