계층 적 데이터 구조를 얻기 위해 mysql 얻기

Mabezdek

이 데이터베이스 구조가 있습니다.

USERS
-----------------------------
| id | parent | name | points
-----------------------------

이 구조에서 다중 중첩 (계층 적) 배열을 가져와야합니다.

예를 들어,이 데이터에서 :

USERS
------------------------------
| id | parent | name | points
------------------------------
| 1  | null   | A    | 20
| 2  | 1      | B    | 10
| 3  | 1      | C    | 30
| 4  | 3      | D    | 40
| 5  | 2      | E    | 50
------------------------------

다음 PHP 배열을 얻는 방법 :

[
  "1" => [
    "points" => 20,
    "childs" => [
      "2" => [
        "points" => 10,
        "childs" => [
          "5" => [
            "points" => 50,
            "childs" => null
          ]
        ]
      ],
      "3" => [
        "points" => 30,
        "childs" => [
          "4" => [
            "points" => 40,
            "childs" => null
          ]
        ]
      ]
    ]
  ]
]

감사!

파이프

다음은 깊이가 무한한 작업 예제입니다.

 //Obtain this from database
 $datas = [
    [
        "id" => 1,
        "parent" => null,
        "name"  => "A",
        "points" => 20
    ],
    [
        "id" => 2,
        "parent" => 1,
        "name"  => "B",
        "points" => 10
    ],
    [
        "id" => 3,
        "parent" => 1,
        "name"  => "C",
        "points" => 30
    ],
    [
        "id" => 4,
        "parent" => 3,
        "name"  => "D",
        "points" => 40
    ],
    [
        "id" => 5,
        "parent" => 2,
        "name"  => "E",
        "points" => 50
    ]   
 ];

 $ordered = [];

 for($i=0; $i<count($datas); $i++)
 {
    $data = &$datas[$i];
    $id = $data["id"];
    $data["childs"] = [];
    $ordered[$id] = &$data; 
 }

 $result = [];
 for($i=0; $i<count($datas); $i++)
 {
    $data = &$datas[$i];
    $id = $data["id"];
    $parent = $data["parent"];

    //unset not needed properties
    unset($data["id"]);
    unset($data["parent"]);                 

    if($parent){
        $ordered[$parent]["childs"][$id] = &$data;
    } else {
        $result[$id] = &$data;
    }
 }

결과는 다음과 같습니다.

print_r($result);

Array
(
    [1] => Array
        (
            [name] => A
            [points] => 20
            [childs] => Array
                (
                    [2] => Array
                        (
                            [name] => B
                            [points] => 10
                            [childs] => Array
                                (
                                    [5] => Array
                                        (
                                            [name] => E
                                            [points] => 50
                                            [childs] => Array
                                                (
                                                )    
                                        )    
                                )    
                        )    

                    [3] => Array
                        (
                            [name] => C
                            [points] => 30
                            [childs] => Array
                                (
                                    [4] => Array
                                        (
                                            [name] => D
                                            [points] => 40
                                            [childs] => Array
                                                (
                                                )    
                                        )    
                                )    
                        )    
                )    
        )    
)

orderedID별로 "순서화 된"데이터 배열을 포함합니다 (항목을 쉽게 검색 할 수 있음) result. 데이터 계층 구조를 포함합니다.

도움이되기를 바랍니다.

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

궁극적 인 부모 항목을 얻기 위해 SQL Server 데이터베이스에서 테이블 외래 키 관계의 계층 구조를 동적으로 탐색하는 방법은 무엇입니까?

분류에서Dev

완전한 계층 구조를 얻기위한 재귀

분류에서Dev

MySQL에서 계층 적 데이터 가져 오기

분류에서Dev

계층 적 데이터를 생성하기위한 복잡한 재귀 SQL

분류에서Dev

대량의 계층 적 데이터를 표시하기위한 UI

분류에서Dev

Excel에서 하위 데이터의 존재를 기반으로 계층 적 데이터 합계

분류에서Dev

데이터를 집계하여 월별 누적 합계 얻기

분류에서Dev

몽구스 데이터의 계층 적 중첩 객체를 얻는 방법

분류에서Dev

데이터를 얻기 위해 많은 테이블을 반복합니다 (MySQL).

분류에서Dev

파이썬에서 계층 적 클래스를 구성하기위한 파일 구조

분류에서Dev

계층 적 데이터 가져 오기

분류에서Dev

파이썬 문자열에서 계층 구조 얻기

분류에서Dev

일등석에서 일부 데이터를 얻기 위해 중산층에 대한 참조 전달

분류에서Dev

다단계 데이터를 얻기 위해 쿼리를 작성하는 방법

분류에서Dev

Mondrian-계층 구조에서 멤버를 참조하기 위해 명시적인 수준이 필요한 이유는 무엇입니까?

분류에서Dev

데이터 계층 구조에 접근하기 위해 모델을 어떻게 설계합니까?

분류에서Dev

공동 저자 관계를 얻기 위해 데이터 프레임 변환

분류에서Dev

지퍼와 이해를 위해 가짜 섬유 추적 얻기

분류에서Dev

지리적 위치를 얻기 위해 데이터 프레임의 두 열에 람다 함수를 적용

분류에서Dev

데이터의 계층 구조 위치를 기반으로 한 Excel 순차 번호 매기기 순서

분류에서Dev

jQuery로 MYSQL에서 업데이트 된 데이터를 얻기 위해 PHP 함수를 호출하는 방법

분류에서Dev

MySQL은 계층 적 일대 다 데이터 구조의 조상 추적

분류에서Dev

값을 기반으로 계층 구조 데이터를 수행하려면 어떻게해야합니까?

분류에서Dev

계층을 구현하기 위해 순차적으로 규칙 적용

분류에서Dev

AJAX를 통해 POST 데이터 얻기

분류에서Dev

Oracle 11g에서 계층 적 조인 데이터의 루트를 얻는 방법

분류에서Dev

Lux에서 Lumens Calculator로 동적 데이터를 얻기 위해 rvest를 사용하는 방법

분류에서Dev

누적 합계를 기준으로 상위 X 비율 얻기

분류에서Dev

계층 적 데이터를위한 관계형 데이터베이스 설계?

Related 관련 기사

  1. 1

    궁극적 인 부모 항목을 얻기 위해 SQL Server 데이터베이스에서 테이블 외래 키 관계의 계층 구조를 동적으로 탐색하는 방법은 무엇입니까?

  2. 2

    완전한 계층 구조를 얻기위한 재귀

  3. 3

    MySQL에서 계층 적 데이터 가져 오기

  4. 4

    계층 적 데이터를 생성하기위한 복잡한 재귀 SQL

  5. 5

    대량의 계층 적 데이터를 표시하기위한 UI

  6. 6

    Excel에서 하위 데이터의 존재를 기반으로 계층 적 데이터 합계

  7. 7

    데이터를 집계하여 월별 누적 합계 얻기

  8. 8

    몽구스 데이터의 계층 적 중첩 객체를 얻는 방법

  9. 9

    데이터를 얻기 위해 많은 테이블을 반복합니다 (MySQL).

  10. 10

    파이썬에서 계층 적 클래스를 구성하기위한 파일 구조

  11. 11

    계층 적 데이터 가져 오기

  12. 12

    파이썬 문자열에서 계층 구조 얻기

  13. 13

    일등석에서 일부 데이터를 얻기 위해 중산층에 대한 참조 전달

  14. 14

    다단계 데이터를 얻기 위해 쿼리를 작성하는 방법

  15. 15

    Mondrian-계층 구조에서 멤버를 참조하기 위해 명시적인 수준이 필요한 이유는 무엇입니까?

  16. 16

    데이터 계층 구조에 접근하기 위해 모델을 어떻게 설계합니까?

  17. 17

    공동 저자 관계를 얻기 위해 데이터 프레임 변환

  18. 18

    지퍼와 이해를 위해 가짜 섬유 추적 얻기

  19. 19

    지리적 위치를 얻기 위해 데이터 프레임의 두 열에 람다 함수를 적용

  20. 20

    데이터의 계층 구조 위치를 기반으로 한 Excel 순차 번호 매기기 순서

  21. 21

    jQuery로 MYSQL에서 업데이트 된 데이터를 얻기 위해 PHP 함수를 호출하는 방법

  22. 22

    MySQL은 계층 적 일대 다 데이터 구조의 조상 추적

  23. 23

    값을 기반으로 계층 구조 데이터를 수행하려면 어떻게해야합니까?

  24. 24

    계층을 구현하기 위해 순차적으로 규칙 적용

  25. 25

    AJAX를 통해 POST 데이터 얻기

  26. 26

    Oracle 11g에서 계층 적 조인 데이터의 루트를 얻는 방법

  27. 27

    Lux에서 Lumens Calculator로 동적 데이터를 얻기 위해 rvest를 사용하는 방법

  28. 28

    누적 합계를 기준으로 상위 X 비율 얻기

  29. 29

    계층 적 데이터를위한 관계형 데이터베이스 설계?

뜨겁다태그

보관