В общем чего-то я не догоняю элементарную вещь. Мне нужно получить структуру папок и файлов в определённой директории. Что есть сейчас: PHP: <?php function getArr($folder) { $files = scandir($folder); foreach($files as $file) { if (($file == '.') || ($file == '..')) { continue; } $fullPath = $folder.'/'.$file; if (is_dir($fullPath)) { $arr[] = $file; getArr($fullPath); } else { $arr[] = $file; } } } getArr("./../"); Идея такова: сканирую директорию, если файл - записываю имя в массив, если папка - записываю имя в массив, а вот дальше нужно просканировать эту папку. Просканировать фигня, а вот как записать в массив, чтобы он (при вложенности папок, допустим folder=>folder1=>folder2) получился вида $arr[folder][folder1]?
Вот в том и загвоздка. Как сделать 2 уровня вложенности - я понимаю. А вот больше - никак не допрет до меня
Ну ты меня прям расстраиваешь сейчас... function scan(path) tmp = [] d = opendir(path) while (f = readdir(d)) if (is_dir(path.f)) tmp[f] = scan(path.f) if (is_file(path.f) tmp[f] = true endwhile return tmp endfunction tree = scan(/) var_dump(tree) идея ясна?
Мне кажется все потому что твоя функция ничего не возвращает и по идее, даже первый уровень бесполезен, а что уж говорить о рекурсии.
Емае, два дня понадобилось, чтобы во сне придти к пониманию сего действа. Я не с той стороны думал даже. Теперь буду за компом - напишу. Спасибо, Ганзал!