在PHP中...将文件夹结构的字符串表示形式转换为嵌套数组的最佳方法

时间:2010-04-14 05:19:02

标签: php string arrays recursion nested

我查看了类似问题的相关问题,但我没有看到我需要的东西,请原谅,如果已经回答了这个问题。在我的数据库中,我有一个记录列表,我希望将其作为文件夹结构内的文件呈现给用户。因此,对于每个记录,我有一个名为“FolderStructure”的VARCHAR列,我想识别记录放入文件夹结构。这些平面FolderStructure字符串列的系列将创建我的树结构,文件夹由反斜杠(自然地)分隔。我不想再添加另一个表来表示文件夹结构......'文件'名称存储在一个单独的列中,这样如果FolderStructure列为空,则假定该文件位于根文件夹中。

将这些记录的集合转换为一系列HTML UL / LI标记的最佳方法是什么...其中每个LI代表一个文件,每个文件夹结构是嵌入其父级的UL?

例如:

file - folderStructure

foo -

bar - firstDir

蓝色 - firstDir / subdir

将生成以下HTML:

<ul>
<li>foo</li>

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

由于

1 个答案:

答案 0 :(得分:2)

看看这篇文章:http://kevin.vanzonneveld.net/techblog/article/convert_anything_to_tree_structures_in_php/开始吧。它将帮助您将数据库转换为php中的树结构。之后,您可以使用底部的功能进行一些修改...而不是缩进,让它打印ul标签,然后对于每个最终项目,让它在li标签内打印。在底部,在递归调用之后,将结束ul标记。