2015-11-07 88 views
0

因此,可以說,我有以下陣列:開啓數組值從一維數組到另一個數組的深度

$value = 'x'; 

$foo = Array(
    0 => 'arraydepth1', 
    1 => 'arraydepth2', 
    2 => 'arraydepth3', 
    3 => 'arraydepth4' 
) 

我需要的值是鍵,以便/深度以下的數組:

$bar['arraydepth1']['arraydepth2']['arraydepth3']['arraydepth4'] = 'x'; 

回答

4

總結你的腦袋解決此:

function nest(Array $a, $lastValue) { 
    $out = []; 
    $ref =& $out; 
    foreach ($a as $b) { 
     $ref[$b] = []; 
     $ref =& $ref[$b]; 
    } 
    $ref = $lastValue; 
    return $out; 
} 
var_dump(nest($foo, $value)); 

這是一個有點令人費解解釋,但這裏是我的嘗試:

  • $out變量只是會在函數結束時返回數組。

  • $ref是對最近嵌套數組的引用。

  • 在循環中,我們不斷向參考添加一個數組,然後將引用設置爲添加的數組。

+0

你不是我需要的英雄。你是我應得的英雄。 – ALF

相關問題