>백엔드 개발 >PHP 문제 >PHP 배열을 트리 배열로 변환하는 방법

PHP 배열을 트리 배열로 변환하는 방법

zbt
zbt원래의
2023-08-04 17:30:481340검색

PHP 배열을 트리 배열로 변환하는 방법: 1. 트리 배열의 구조와 개념을 이해합니다. 트리 배열에서 각 요소에는 고유 식별자와 상위 요소의 식별자가 있습니다. 2. 예제 배열을 준비하고 일반 연관을 만듭니다. 일부 항목과 해당 상위 요소 식별자가 포함된 배열 3. 일반 배열을 트리 배열로 변환하는 함수를 생성하는 변환 함수를 생성합니다. 4. 변환 함수를 호출하고 결과를 출력합니다.

PHP 배열을 트리 배열로 변환하는 방법

이 튜토리얼의 운영 환경: Windows 10 시스템, php8.1.3 버전, DELL G3 컴퓨터.

PHP에서 배열은 매우 일반적이고 실용적인 데이터 구조입니다. 때로는 데이터를 보다 편리하게 정리하고 표시하기 위해 일반 배열을 트리 배열로 변환해야 할 때가 있습니다. 이 기사에서는 PHP 배열을 트리 배열로 변환하는 방법을 소개합니다.

1. 트리 배열의 구조와 개념을 이해합니다

트리 배열에서 각 요소에는 고유 식별자와 상위 요소의 식별자가 있습니다. 상위 요소의 식별자는 하위 요소의 식별자와 일치하여 요소 간의 계층 관계를 결정할 수 있습니다. 트리 배열의 구조는 트리 구조와 유사합니다. 여기서 최상위 요소는 루트 요소라고 하며 하위 요소는 리프 노드 또는 다른 분기 노드일 수 있습니다.

2. 샘플 배열 준비

예를 들어 다음과 같이 일부 항목과 해당 상위 요소 식별자를 포함하는 일반 연관 배열을 만듭니다.

$data = array(
array('id' => 1, 'name' => '项目1', 'parent_id' => 0),
array('id' => 2, 'name' => '项目1.1', 'parent_id' => 1),
array('id' => 3, 'name' => '项目1.2', 'parent_id' => 1),
array('id' => 4, 'name' => '项目1.1.1', 'parent_id' => 2),
array('id' => 5, 'name' => '项目2', 'parent_id' => 0),
array('id' => 6, 'name' => '项目2.1', 'parent_id' => 5),
array('id' => 7, 'name' => '项目2.2', 'parent_id' => 5),
);

위 배열에는 일부 항목이 포함되어 있습니다. 0은 루트 요소입니다.

3. 변환 함수 만들기

다음으로 일반 배열을 트리 배열로 변환하는 함수를 만들어 보겠습니다. 먼저, 배열을 순회하고 트리를 구축하는 재귀 함수를 정의해야 합니다. 이 함수는 입력 배열과 상위 요소 식별자라는 두 개의 매개변수를 받습니다.

function buildTree(array $data, $parentId = 0) {
$tree = array();
foreach ($data as $row) {
if ($row['parent_id'] == $parentId) {
$children = buildTree($data, $row['id']);
if ($children) {
$row['children'] = $children;
}
$tree[] = $row;
}
}
return $tree;
}

위 코드에서는 먼저 빈 배열 $tree를 만든 다음 foreach 루프를 사용하여 입력 배열 $data를 순회합니다. 요소의 상위 요소 식별자가 전달된 상위 요소 식별자와 동일한 경우 $children이라는 하위 배열이 생성되고 buildTree() 함수가 반복적으로 호출되어 하위 요소를 $children에 추가합니다. $children이 빈 배열이 아닌 경우 현재 행의 "children" 키에 추가합니다. 마지막으로 현재 행을 $tree 배열에 추가합니다.

4. 변환 함수 호출 및 결과 출력

다음으로, buildTree() 함수를 호출하고 샘플 배열을 매개변수로 전달합니다. 그런 다음 print_r() 함수 또는 var_dump() 함수를 사용하여 결과를 인쇄하여 변환이 성공했는지 확인할 수 있습니다.

$treeData = buildTree($data);
print_r($treeData);

위 코드를 실행하면 트리 배열의 출력이 표시됩니다.

Array
(
[0] => Array
(
[id] => 1
[name] => 项目1
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 2
[name] => 项目1.1
[parent_id] => 1
[children] => Array
(
[0] => Array
(
[id] => 4
[name] => 项目1.1.1
[parent_id] => 2
)
)
)
[1] => Array
(
[id] => 3
[name] => 项目1.2
[parent_id] => 1
)
)
)
[1] => Array
(
[id] => 5
[name] => 项目2
[parent_id] => 0
[children] => Array
(
[0] => Array
(
[id] => 6
[name] => 项目2.1
[parent_id] => 5
)
[1] => Array
(
[id] => 7
[name] => 项目2.2
[parent_id] => 5
)
)
)
)

보시다시피 일반 배열을 트리 배열로 성공적으로 변환했습니다.

요약

이 글에서는 PHP 배열을 트리 배열로 변환하는 방법을 설명합니다. 트리 배열의 구조와 개념을 이해하여 트리를 구축하는 재귀 함수를 만들고, 함수를 호출하여 배열을 변환합니다. 이렇게 하면 데이터를 쉽게 정리하고 표시할 수 있습니다

위 내용은 PHP 배열을 트리 배열로 변환하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.