我需要这样做:
$array['level1']['level2']['level3'] = 'someval';
但是,我不知道会有多少级别。我希望能够自动创建任意数量的这些数组。我正在尝试调整以下内容,以便它形成一个实际的PHP数组:
for($i=1;$i<=3;$i++){
$string .= '_level'.$i;
};
${'array'.$string} = 'someval';
var_dump($array_level1_level2_level3); //Outputs: string(7) "someval"
显然,这不是数组的替代品。我只是在寻找可以应用于多维数组的并行。我怀疑答案在于某种递归函数,但我不太确定是什么。
这是我真正想做的事情。我无法充分解释我的问题,因此问题已经结束。所以,我试图把它拆分成碎片。
https://stackoverflow.com/questions/8002490/creating-multidimensional-arrays-in-php
答案 0 :(得分:0)
您可以尝试以下方法:
function makeArray($array, $lowElement, $highElement, $value) {
if($highElement == $lowElement) {
$array['level' . $highElement] = $value;
}
else {
$array['level' . $lowElement] = makeArray($array, $lowElement+1, $highElement, $value);
}
return $array;
}
$array = array();
$array = makeArray($array, 1, 5, 'someval');
print_r($array); // Output: Array ( [level1] => Array ( [level2] => Array ( [level3] => Array ( [level4] => Array ( [level5] => someval ) ) ) ) )
输出表明现在您有以下内容:
$array['level1']['level2']['level3']['level4']['level5'] = 'someval';