2010-10-04 41 views
1

我期待采取这样的字符串作为包含作为多维数组的字符串的路径的变量?

"/test/uri/to/heaven" 

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

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

任何人有任何指针?我已经通过谷歌和这里的搜索了一下,但我没有看到任何东西。

+1

这样做通常没有什么意义,这就是为什么没有'爆炸()'函数,它以这种方式工作。你需要做什么? – 2010-10-04 16:14:32

+0

好吧,爆炸给了我一个平面阵列。我想知道如何得到爆炸的结果,并保留字符串中路径的深度? – BeesonBison 2010-10-04 16:16:22

回答

3

这里是一个快速的非递归黑客:

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

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

var_dump($arr); 
+1

我的var_dump看起来像这样:阵列(1){ [ “测试”] => 阵列(1){ [ “URI”] => 阵列(1){ [ “到”] => 阵列(1){ [ “上天”] => 阵列(0){ } } } } } – ITroubs 2010-10-04 16:23:29

+0

这是很大的,非常感谢=) – BeesonBison 2010-10-04 16:26:30

+0

我想能够扭转这种回一个字符串。任何想法如何? – TarranJones 2015-04-13 14:45:25