mysql平面设计到php嵌套数组

时间:2016-06-14 09:29:44

标签: arrays tree nested fancytree flat

我有一个简单的mysql用户表,其平面设计如下所示。该表按Group5,...,LibUser Ascending排序。

╔════════╤════════╤════════╤════════╤═══════════╗
║ 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": ""}
            ]}
        ]}
    ]}  
]}
]

当数据以层次结构存储时,我读了一些例子,但这不是这种情况。

有任何想法将这个平面设计转变为树吗? 谢谢您的帮助。

1 个答案:

答案 0 :(得分:0)

通常,您可以使用postProcess回调来调整或转换源数据 client-side Java config包含一些示例。

虽然这不是确切解决问题的最终代码,但您也可以从此请求中获得一些想法: The tutorial

相关问题