将键列表添加到多维数组中

时间:2014-04-14 15:01:21

标签: php arrays multidimensional-array key

我会尽量简短,但要清楚。 例如:

$foo['test'] = array();
$foo2('test1','test2','test3','test4');

是否可以创建某种循环来获取这个多维数组?:

$foo['test']['test1']['test2']['test3']['test4'] = ...;

你事先并不知道$ foo2数组会有多长。 我希望我的问题很清楚,不要停下来问。

欢迎任何帮助! 提前谢谢!

1 个答案:

答案 0 :(得分:2)

我无法想到一个有效的用例。但您可以使用引用(this answer的修改版本)

来执行此操作
$foo['test'] = array();
$foo2 = array('test1','test2','test3','test4');

$result = array();
$temp = &$result;

foreach($foo2 as $value) {
    $temp[$value] = array();
    $temp = &$temp[$value];
}
unset($temp);
$foo['test'] = $result;
var_dump($foo);

Demo


使用eval()的愚蠢和愚蠢的解决方案。 不应该使用。我发布它只是为了它的乐趣;)

$foo2 = array('test1','test2','test3','test4');
eval("\$res['".join("']['",$foo2)."']=[];");
$foo['test'] = $res;

Demo