0

我有一个看起来像这样的表:

+----+-----------+------------------+------------+
| ID | folder_id | parent_folder_id |  group_id  |
+====+===========+==================+============+
| 01 |         1 | null             | parent     |
| 02 |         2 | 1                | group_id_1 |
| 03 |         3 | 2                | group_id_2 |
| 04 |         4 | 3                | group_id_3 |
| 05 |         5 | 4                | group_id_4 |
+----+-----------+------------------+------------+

我需要将其转换为文件夹结构,其中具有 parent_id 的每个文件夹行!= null 显示在具有 folder_id = parent_id 的文件夹下方。我需要以理智的方式做到这一点,并且不知道如何去做。创建后,我将添加与行的 group_id 对应的项目。

最终,我需要将 SQL 表转换为如下所示的数组:

$folders["parent"] = array["folder_id_2"] (
    array["folder_id_3"](file 1, file2);
    array["folder_id_4"](
        array["folder_id_5"](file 3, file 4),
        file 5
    );
    file 6
);
4

1 回答 1

0

我可能无法创建您想要的数组。但是,尝试替代解决方案怎么样?使用树形结构。这是我要做的:

  1. 声明class Folder其中包含$parent$files属性。$parent用于引用父Folder对象,$files将是文件数组。
  2. 迭代数据库记录并Folder从每一行实例化对象。
  3. 将每个Folder对象的$parent属性设置为引用父Folder对象。

这样,我们就可以得到树形的文件夹结构。

于 2013-02-26T06:08:19.110 回答