0

I have troubles with this task. Im new in PHP. I think i must user recursive funcruion, but i do not understand how it use

I have an array like this:

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
        )
)

I need to build direcory's path like this:

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

Can you help me whith this task? Thx.

kuai6
  • 11
  • 2
  • Start with some [generic tree building](http://stackoverflow.com/questions/8587341/recursive-function-to-generate-multidimensional-array-from-database-result) to build a multidimensional array representing the tree. With your newly won skills in recursive functions, traverse that tree and build the paths. – deceze Mar 04 '13 at 11:10

1 Answers1

0
$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/
)
karmafunk
  • 1,453
  • 12
  • 20