2013-10-30 40 views
1

我有一个包含一些文件夹路径的多维数组。在这个数组中,我应该建立一棵树。与在命令提示符中使用“树”时类似。对不起,我的英语不好,我的小知识我仍然是学生。创建显示多个文件夹路径的树

多维数组:

Array 
(
[0] => Array 
    (
     [X:] => Array 
      (
       [A1] => Array 
        (
         [10_ColdForging] => Array 
          (
           [01_Administration] => Array 
            (
            ) 

          ) 

        ) 

      ) 

    ) 

[1] => Array 
    (
     [X:] => Array 
      (
       [A1] => Array 
        (
         [99_MusterOrdner] => Array 
          (
          ) 

        ) 

      ) 

    ) 

[2] => Array 
    (
     [X:] => Array 
      (
       [A1] => Array 
        (
         [10_ColdForging] => Array 
          (
          ) 

        ) 

      ) 

    ) 

) 

树应类似于此:

X:\ 
    A1 
    10_ColdForging 
      01_Administration 
    99_MusterOrdner 

我发现了一些JavaScript的东西,但他们都希望列出整个目录。东西
like this将是完美的。 但我不明白它是如何工作的,没有文档。

回答

0

好吧,我解决了这个问题。

Array 
(
[0] => Array 
    (
     [0] => Y: 
    ) 

[1] => Array 
    (
     [0] => A1 
    ) 

[2] => Array 
    (
     [0] => 10_ColdForging 
     [1] => 99_MusterOrdner 
    ) 

[3] => Array 
    (
     [0] => 01_Administration 
    ) 

) 

然后我从here使用的功能,它的工作原理:所以它看起来像这样我已经改变了阵列。这只是一个小问题,子文件夹没有列出正确的。它在“99_MusterOrder”中列出,但它应该在“10_ColdForging”中。我要修改数组或函数来解决这个问题。

编辑:

找到了一个非常好的剧本该数组转换在我需要: HERE

我上面的脚本结合它,它正在像一个魅力。

Array 
(
[Y:] => Array 
    (
     [A1] => Array 
      (
       [10_ColdForging] => Array 
        (
         [02_Travel] => X:\A1\10_ColdForging\02_Travel 
         [01_Administration] => X:\A1\10_ColdForging\01_Administration 
        ) 

       [99_MusterOrdner] => X:\A1\99_MusterOrdner 
      ) 

     [A3] => Array 
      (
       [02_department] => Array 
        (
         [001_Coaches] => X:\A3\02_department\001_Coaches 
        ) 

      ) 

    ) 

) 
0

试试这个:(从您发布和编辑的链接中获取)。

<?php 

$hey = array(
    'X:\\', 
    array(
     'A1', 
     array('10_coldForgin', array('01_Administration'), '99_MusterOrdner') 
    ) 
); 

$awesome = new RecursiveTreeIterator(
    new RecursiveArrayIterator($hey), 
    null, null, RecursiveIteratorIterator::LEAVES_ONLY 
); 

foreach ($awesome as $line) 
    echo $line.PHP_EOL; 

它看起来就像这对我来说:

|-X:\ 
    |-A1 
    |-10_coldForgin 
    | \-01_Administration 
    \-99_MusterOrdner 
+0

对我来说很陌生,看起来不一样。这一切都在一排。第二个问题是所有数据都是动态的。所以我不能硬编码任何东西。也许一些技巧,我可以清理阵列,使其结构像你的例子? – user2935901

+0

任何想法,如果我可以使用这个我的数组,或修改我的数组,它的工作? http://phpflow.com/php/how-to-create-dynamic-tree-view-menu/ – user2935901