私は以下のようなフラットなデザインのシンプルなmysqlユーザテーブルを持っています。テーブルは、Group5、...、LibUser昇順で並べ替えられます。mysqlフラットデザインからPHPネストした配列
╔════════╤════════╤════════╤════════╤═══════════╗
║ Group5 │ Group4 │ Group3 │ Group2 │ LibUser ║
╠════════╪════════╪════════╪════════╪═══════════╣
║ G5_1 │ G4_1 │ G3_1 │ G2_1 │ LibUser_1 ║
╟────────┼────────┼────────┼────────┼───────────╢
║ G5_1 │ G4_1 │ G3_1 │ G2_1 │ LibUser_2 ║
╟────────┼────────┼────────┼────────┼───────────╢
║ G5_1 │ G4_1 │ G3_1 │ G2_1 │ LibUser_3 ║
╟────────┼────────┼────────┼────────┼───────────╢
║ G5_1 │ G4_1 │ G3_1 │ G2_2 │ LibUser_4 ║
╟────────┼────────┼────────┼────────┼───────────╢
║ G5_1 │ G4_1 │ G3_2 │ G2_3 │ LibUser_5 ║
╟────────┼────────┼────────┼────────┼───────────╢
║ .... │ .... │ .... │ .... │ .... ║
╟────────┼────────┼────────┼────────┼───────────╢
║ G5_n │ G4_n │ G3_n │ G2_n │ LibUser_n ║
╚════════╧════════╧════════╧════════╧═══════════╝
このフラットデザインを階層的なネストされたツリーに変換したいと考えています。目的は、fancytree.jsを使用して表示することです。
親子を持つ最後のネストされた配列は、このようになります( "nbcpt"属性はブランチ内のユーザー数ですが、注意しないでください)。これは一例に過ぎず、上に示したmysqlテーブルとそのネストされた配列の間には正確なリンクはありません。
[
{"title": "All", "expanded": true, "folder": true, "nbcpt": 8, "children": [
{"title": "G5_1", "folder": true, "nbcpt": 4, "children": [
{"title": "G4_1", "nbcpt": 3, "folder": true, "children": [
{"title": "G3_1", "folder": true, "nbcpt": 2, "children": [
{"title": "LibUser_1", "nbcpt": ""},
{"title": "LibUser_2", "nbcpt": ""}
,
{"title": "G3_2", "folder": true, "nbcpt": 1, "children": [
{"title": "LibUser_3", "nbcpt": ""}
]}
]}
]},
{"title": "G4_2", "folder": true, "nbcpt": 1,"children": [
{"title": "G3_3", "folder": true, "nbcpt": 1, "children": [
{"title": "LibUser_4", "nbcpt": ""}
]}
]}
]},
{"title": "G5_2", "folder": true, "nbcpt": 4, "children": [
{"title": "G4_3", "folder": true, "nbcpt": 3, "children": [
{"title": "G3_4", "folder": true, "nbcpt": 2, "children": [
{"title": "LibUser_5", "nbcpt": ""},
{"title": "LibUser_6", "nbcpt": ""},
{"title": "G2_1", "nbcpt": 1, "children": [
{"title": "LibUser_7", "nbcpt": ""}
]}
]}
]},
{"title": "G3_5", "folder": true, "nbcpt": 1, "children": [
{"title": "G2_2", "folder": true, "nbcpt": 1, "children": [
{"title": "LibUser_8", "nbcpt": ""}
]}
]}
]}
]}
]
データが階層構造で保存されている場合の例をいくつか読みますが、ここでは該当しません。
このフラットデザインをツリーに変換する方法はありますか? ありがとうございます。