【问题标题】:How to convert a simple array to a multidimensional array?如何将简单数组转换为多维数组?
【发布时间】:2017-10-30 12:07:12
【问题描述】:

我有第一个数组

$key = array('first', 'second', 'third', ...);

我想把它转换成一个看起来像这样的 $new_array

array('first' => array('second' => array('third' => ...)));

有什么想法吗?

【问题讨论】:

  • 到目前为止你尝试了什么?
  • 你希望它递归嵌套?
  • @rahulsm 我在 PHP 文档中查找 array_ 函数,foreach 操作,问我自己等。是的,递归嵌套!
  • 顺便问一下,你为什么不赞成我的问题?很明显,我是不是应该写一整段来显得严肃?
  • @FlorentBanneux 我猜这可能是因为您没有发布您尝试过的内容。恕我直言,您的问题本身很清楚。大多数 SO 用户不喜欢似乎是 "pls send teh codez" 的问题

标签: php arrays multidimensional-array


【解决方案1】:

试试这个:

$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 => [] 的新子数组,然后再次设置引用。

【讨论】:

  • 谢谢,非常感谢!
  • @FlorentBanneux 没问题 :) 如果我的回答对你有帮助,别忘了accept it
猜你喜欢
  • 2016-02-05
  • 2014-10-27
  • 2015-07-31
  • 2015-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
相关资源
最近更新 更多