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 Folderwhich を含む属性を宣言$parentします。親オブジェクトを参照するためのもので、ファイルの配列になります。$files$parentFolder$files
  2. データベース レコードを反復処理Folderし、各行からオブジェクトをインスタンス化します。
  3. 親オブジェクトを参照するように各Folderオブジェクトの属性を設定します。$parentFolder

このようにして、フォルダ構造をツリー形式で取得できます。

于 2013-02-26T06:08:19.110 に答える