PHP:制作多维数组的快捷方式

时间:2011-11-03 23:03:56

标签: php arrays

我需要这样做:

$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

1 个答案:

答案 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';