【问题标题】:Variable containing a path as a string to multi-dimensional array?包含路径作为多维数组的字符串的变量?
【发布时间】:2011-04-20 21:34:36
【问题描述】:

我正在寻找一个字符串,例如

"/test/uri/to/heaven"

并把它变成一个多维的、嵌套的数组如:

array(
    'var' => array(
        'www' => array(
            'vhosts' => array()            
        ),
    ),
);

有人指点吗?我已经通过 Google 和这里​​的搜索查看过,但我什么也没看到。

【问题讨论】:

  • 这样做通常没有什么意义,这就是为什么没有explode() 函数以这种方式工作的原因。你需要这个做什么?
  • 好吧,explode 给了我一个平面数组。我想知道如何获得爆炸的结果,按照我的示例保留字符串中路径的深度?

标签: php multidimensional-array path


【解决方案1】:

这是一个快速的非递归破解:

$url   = "/test/uri/to/heaven";
$parts = explode('/',$url);

$arr = array();
while ($bottom = array_pop($parts)) {        
    $arr = array($bottom => $arr);
}

var_dump($arr);

输出:

array(1) {
  ["test"]=>
  array(1) {
    ["uri"]=>
    array(1) {
      ["to"]=>
      array(1) {
        ["heaven"]=>
        array(0) {
        }
      }
    }
  }
}

【讨论】:

  • 我的 var_dump 看起来像这样:array(1) { ["test"]=> array(1) { ["uri"]=> array(1) { ["to"]=>数组(1) { ["天堂"]=> 数组(0) { } } } } }
  • 我希望能够再次将其反转回字符串。知道怎么做吗?
  • @TarranJones 这个答案stackoverflow.com/questions/1319903/… 似乎又好又短
猜你喜欢
  • 1970-01-01
  • 2018-06-14
  • 2011-03-30
  • 2023-03-30
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
  • 2014-05-14
  • 2013-01-08
相关资源
最近更新 更多