我会尝试简洁,但很清楚。 例如:

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

是否可以创建某种循环以获得此多维数组?:

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

您不知道$ foo2数组将是多长时间的。 我希望我的问题很清楚,不要停止问。

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

有帮助吗?

解决方案

我想不出一个有效的用例。但是你可以用引用来做到这一点(修改版这个答案

$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);
.

演示


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

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

演示

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top