Как сделать дерево из плоского массива – php

Я пытаюсь представить весь массив, возвращенный из ведра Amazon S3, в древовидной структуре, которую можно просматривать.

Пример массива следующий

$files[0] = 'container/798/'; $files[1] = 'container/798/logo.png'; $files[2] = 'container/798/test folder/'; $files[3] = 'container/798/test folder/another folder/'; $files[4] = 'container/798/test folder/another folder/again test/'; $files[5] = 'container/798/test folder/another folder/test me/'; $files[6] = 'container/798/test two/'; $files[7] = 'container/798/test two/logo2.png'; 

и это то, чего я пытаюсь достичь

 http://img.ruphp.com/php/HBjvE.png 

до сих пор я достиг только разных файлов и папок, но не на другом уровне с отношением родитель-потомок. Вышеупомянутый массив находится в $ keys ['files']. Следующий код

 $keys = json_decode($result,true); $folders = array(); $files = array(); $i =0; foreach ($keys['files'] as $key){ if(endsWith($key, "/")){ $exploded = explode('container/'.$_SESSION['id_user'].'/',$key); if(!empty($exploded[1])) $folders[$i]['name'] = substr($exploded[1],0,-1); } else{ $exploded = explode('container/'.$_SESSION['id_user'].'/',$key); $files[$i]['name'] = $exploded[1]; $files[$i]['size'] = ""; $files[$i]['date'] = ""; $files[$i]['preview_icon'] = ""; $files[$i]['dimensions'] = ""; $files[$i]['url'] = ""; } $i++; } 

Это код, чтобы показать, что я пытаюсь, но его не полный или точный. Я не знаю, как подойти к логике, которая может дать мне иерархию, я показываю картину. Любая помощь будет принята с благодарностью.