【问题标题】:Get directory path from direcory array tree in PHP从 PHP 中的目录数组树中获取目录路径
【发布时间】:2013-03-04 11:05:03
【问题描述】:

我在完成这项任务时遇到了麻烦。我是 PHP 新手。 我想我必须使用递归函数,但我不明白它是如何使用的

我有一个这样的数组:

Array
(
    [0] => Array
        (
            [id] => 1
            [parent_id] => 0
            [name] => New Folder
        )
    [1] => Array (
            [id] => 2
            [parent_id] => 1
            [name] => New Folder2
        )
    [2] => Array
        (
            [id] => 3
            [parent_id] => 2
            [name] => New Folder3
        )
    ......
    [5] => Array
        (
            [id] => 6
            [parent_id] => 0
            [name] => New Folder6
        )
    [6] => Array (
            [id] => 7
            [parent_id] => 6
            [name] => New Folder7
        )
    [7] => Array
        (
            [id] => 8
            [parent_id] => 6
            [name] => New Folder8
        )
)

我需要像这样构建目录的路径:

/New Folder
/New Folder/New Folder2
/New Folder/New Folder2/New Folder3
...
/New Folder6
/New Folder6/New Folder7
/New Folder6/New Folder8

你能帮我完成这个任务吗? 谢谢。

【问题讨论】:

  • 从一些generic tree building 开始构建代表树的多维数组。使用您在递归函数方面新获得的技能,遍历该树并构建路径。

标签: php arrays multidimensional-array path directory


【解决方案1】:
$txtTree[0]="/";

foreach($treeArray as $branch){

    if(isset($txtTree[$branch['parent_id']])) {
        $txtTree[$branch['id']] = $txtTree[$branch['parent_id']] . $branch['name']. "/";
    }
} 

print_r($txtTree);


Array
(
    [0] => /
    [1] => /New Folder/
    [2] => /New Folder/New Folder2/
    [3] => /New Folder/New Folder2/New Folder3/
    [6] => /New Folder6/
    [7] => /New Folder6/New Folder7/
    [8] => /New Folder6/New Folder8/
)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-02
    • 1970-01-01
    • 2017-03-05
    • 1970-01-01
    • 2012-12-26
    相关资源
    最近更新 更多