В PHP ... лучший способ превратить строковое представление структуры папок во вложенный массив - PullRequest
2 голосов
/ 14 апреля 2010

Я просмотрел похожие вопросы, чтобы найти похожий вопрос, но не понял, что мне нужно, простите, если на этот вопрос уже был дан ответ. В моей базе данных есть список записей, которые я хочу представить пользователю в виде файлов внутри структуры папок. Поэтому для каждой записи у меня есть столбец VARCHAR с именем «FolderStructure», который я хочу идентифицировать, чтобы эти записи помещались в структуру папок. Последовательность этих плоских столбцов FolderStructure создаст мою древовидную структуру с папками, разделенными обратными слешами (естественно). Я не хотел добавлять другую таблицу просто для представления структуры папок ... Имя файла хранится в отдельном столбце, поэтому, если столбец FolderStructure пуст, предполагается, что файл находится в корневой папке.

Каков наилучший способ превратить коллекцию этих записей в серию HTML-тегов UL / LI ... где каждый LI представляет файл, а каждая структура папок представляет собой UL, встроенный в его родительский файл ??

Так, например:

file - folderStructure

foo -

бар - firstDir

синий - firstDir / subdir

выдаст следующий HTML:

<ul>
<li>foo</li>

    <ul>
     <li> bar </li>
      <ul>
       <li> blue </li>
      </ul>
     </ul>
</ul>

Спасибо

1 Ответ

2 голосов
/ 14 апреля 2010

Взгляните на эту статью: http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/ для начала. Это поможет вам преобразовать вашу базу данных в древовидную структуру в php. После этого вы можете использовать функцию внизу с некоторой модификацией ... вместо отступа пусть она напечатает теги ul, затем для каждого конечного элемента напечатает ее внутри тегов li. А внизу, после рекурсивного вызова, поместите закрывающий тег ul.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...