배열 목록에서 배열 트리 만들기
계층적 관계를 갖는 요소 목록이 있는 상황에서 이를 트리와 같은 형식으로 변환 구조가 중요할 수 있습니다. 이 변환은 효율적인 구성과 검색이 필요한 복잡한 데이터를 처리할 때 특히 유용합니다.
다음 목록을 예로 들어보세요.
[ {id: 100, parentId: 0, name: 'a'}, {id: 101, parentId: 100, name: 'a'}, {id: 102, parentId: 101, name: 'a'}, {id: 103, parentId: 101, name: 'a'}, ]
목표는 이 목록을 계층 구조로 재구성하는 것입니다. 각 요소가 상위 요소와 하위 요소(있는 경우)에 대한 참조를 갖는 트리 구조입니다.
이 변환을 수행하는 효과적인 접근 방식 중 하나는 다음과 같습니다. 다음 코드 조각:
<?php $arr = [ ['id' => 100, 'parentId' => 0, 'name' => 'a'], ['id' => 101, 'parentId' => 100, 'name' => 'a'], ['id' => 102, 'parentId' => 101, 'name' => 'a'], ['id' => 103, 'parentId' => 101, 'name' => 'a'], ]; $new = []; foreach ($arr as $a) { $new[$a['parentId']][] = $a; } $tree = createTree($new, [$arr[0]]); print_r($tree); function createTree(&$list, $parent) { $tree = []; foreach ($parent as $k => $l) { if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } $tree[] = $l; } return $tree; }
이 코드는 parentId를 기준으로 요소를 그룹화하여 입력 목록을 효율적으로 처리합니다. 그런 다음 트리 구조를 재귀적으로 구축하여 각 요소를 해당 하위 요소로 채웁니다. 결과 트리는 원본 목록의 계층적 표현을 제공하므로 상위-하위 관계를 기반으로 데이터를 더 쉽게 탐색하고 검색할 수 있습니다.
위 내용은 배열 목록을 계층적 트리 구조로 효율적으로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!