我需要创建一个如下所示的数组:
Array (
1 => Array(
2 => Array (
3 => Array ()
)
)
)
这个数组应该从数组生成,如下所示:
Array (
1,
2,
3
)
我不确定如何用文字更好地描述这个,所以这就是为什么我给你看这个例子。 3个值仅用于此示例的目的,在实际脚本中,值的数量是变化的。谢谢你的任何建议。
解决,感谢标记为重复。如果有人和我有同样的问题,这里有解决方案。
function setArrayValue(&$array, $path, $value) {
$temp = &$array;
foreach($path as $key)
$temp =& $temp[$key];
$temp = $value;
}
$keys = Array(
10,
9,
8,
7,
6,
5,
4,
3,
2,
1
);
$keys = array_reverse($keys);
$array = Array();
$path = Array();
foreach ($keys AS $i => $key) {
$path[] = $key;
if (array_key_exists(++$i, $keys))
$value = Array(
$keys[$i] => Array(),
);
else
$value = Array();
if ($i == 0) {
$array[$key] = $value;
} else {
setArrayValue($array, $path, $value);
}
}