2015-11-07 47 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

相关问题