데이터베이스 결과에서 다차원 배열을 재귀적으로 생성
이 시나리오의 목표는 데이터베이스 결과에서 검색된 계층적 데이터의 중첩 배열 표현을 구성하는 것입니다. 데이터베이스 쿼리. 결과 테이블에는 상위-하위 관계가 있는 페이지 또는 카테고리가 포함됩니다.
이를 달성하기 위해 재귀 함수인 buildTree()를 사용합니다. 이 함수는 요소 배열과 선택적 상위 ID(기본값은 0)를 사용합니다. 각 요소를 반복하여 지정된 상위 ID가 있는 요소를 식별합니다.
각 하위 요소에 대해 함수는 자신을 재귀적으로 호출하여 해당 하위 트리를 얻습니다. 그런 다음 하위 요소는 해당 하위 요소로 확장되어 계층 구조가 됩니다. 이 프로세스는 모든 요소가 처리될 때까지 계속되어 계층적 데이터 구조를 미러링하는 중첩 배열을 생성합니다.
예
앞서 제공된 데이터베이스 테이블을 고려하세요.
id | parent_id | title |
---|---|---|
1 | 0 | Parent Page |
2 | 1 | Sub Page |
3 | 2 | Sub Sub Page |
4 | 0 | Another Parent Page |
buildTree() 함수를 사용하면 원하는 중첩 트리를 생성할 수 있습니다. 배열:
$elements = [ ['id' => 1, 'parent_id' => 0, 'title' => 'Parent Page'], ['id' => 2, 'parent_id' => 1, 'title' => 'Sub Page'], ['id' => 3, 'parent_id' => 2, 'title' => 'Sub Sub Page'], ['id' => 4, 'parent_id' => 0, 'title' => 'Another Parent Page'], ]; $tree = buildTree($elements);
출력 $tree는 다음과 같습니다.
[ [ 'id' => 1, 'parent_id' => 0, 'title' => 'Parent Page', 'children' => [ [ 'id' => 2, 'parent_id' => 1, 'title' => 'Sub Page', 'children' => [ [ 'id' => 3, 'parent_id' => 2, 'title' => 'Sub Sub Page', ] ] ] ] ], [ 'id' => 4, 'parent_id' => 0, 'title' => 'Another Parent Page', ] ]
이 중첩 배열은 데이터베이스 테이블에 정의된 계층 관계를 유지하여 중첩된 데이터에 대한 효율적인 액세스 및 처리를 가능하게 합니다. 구조.
위 내용은 계층적 데이터베이스 데이터에서 다차원 배열을 재귀적으로 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!