2016-06-14 7 views
0

나는 아래와 같이 평면 디자인으로 간단한 MySQL 사용자 테이블을 가지고있다. 테이블은 Group5, ..., LibUser 오름차순으로 정렬됩니다.PHP 중첩 배열로 mysql 플랫 디자인

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

데이터가 계층 구조와 함께 저장되는 경우 몇 가지 예를 읽었지만, 여기서는 그렇지 않습니다.

이 평면 디자인을 나무로 변형 시키는데 어떤 아이디어가 있습니까? 도움 주셔서 감사합니다.

답변

0

일반적으로 postProcess 콜백을 사용하여 소스 데이터를 적용하거나 변환 할 수 있습니다.
The tutorial에는 몇 가지 예가 포함되어 있습니다. 이 정확하게 문제를 해결 최종 코드는 아니지만

, 당신은이 요청에서 몇 가지 아이디어를 얻을 수 있습니다 https://github.com/mar10/fancytree/issues/431