Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何将简单数组转换为多维数组?_Php_Arrays_Multidimensional Array - Fatal编程技术网

Php 如何将简单数组转换为多维数组?

Php 如何将简单数组转换为多维数组?,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,我有第一个数组 $key = array('first', 'second', 'third', ...); 我想把它转换成一个$new_数组,如下所示 array('first' => array('second' => array('third' => ...))); 有什么想法吗?试试这个: $keys = array('first', 'second', 'third'); $new_array = []; $lastArray = &$new_array

我有第一个数组

$key = array('first', 'second', 'third', ...);
我想把它转换成一个$new_数组,如下所示

array('first' => array('second' => array('third' => ...)));
有什么想法吗?

试试这个:

$keys = array('first', 'second', 'third');

$new_array = [];
$lastArray = &$new_array;
foreach ($keys as $index => $key) {
    $lastArray[$key] = [];
    $lastArray = &$lastArray[$key];
}
unset($lastArray);

print_r($new_array);
这将产生:

Array
(
    [first] => Array
        (
            [second] => Array
                (
                    [third] => Array
                        (
                        )

                )

        )

)

基本上,它存储对创建的最后一个子数组的引用,并且在每次迭代中,使用
$key=>[]
添加一个新的子数组,然后再次设置引用。

到目前为止您尝试了什么?您想让它递归嵌套吗?@rahulsm我在PHP文档中查找数组函数,针对每个操作,询问我自己,等等,是的,递归嵌套!顺便问一下,你为什么要否决我的问题?很明显,我应该写一整段看起来很严肃吗?@FlorentBanneux我猜可能是因为你没有发布你尝试过的东西。你的问题本身很清楚。大多数用户不喜欢那些似乎在说谢谢的问题,我很感激@Florentbaneux没问题:)如果我的回答对你有帮助,别忘了