创建显示多个文件夹路径的树

时间:2013-10-30 14:13:32

标签: php jquery html

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

多维数组:

 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会很完美。 但我不知道它是如何工作的,没有文档。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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
                    )

            )

    )

)