부모-자식 관계를 계층 트리로 변환
프로그래밍에서는 일련의 부모-자식 관계를 계층 트리로 변환해야 할 수 있습니다. 계층적 트리 구조. 이 작업은 재귀적 접근 방식을 사용하여 PHP에서 수행할 수 있습니다.
예제 데이터:
다음과 같은 상위-하위 관계 집합을 고려하세요.
Child : Parent H : G F : G G : D E : D A : E B : C C : E D : NULL
계층형으로 전환 트리:
이 데이터를 계층적 트리 구조로 변환하기 위해 두 개의 PHP 함수를 생성합니다:
parseTree 함수:
function parseTree($tree, $root = null) { $return = array(); foreach($tree as $child => $parent) { if($parent == $root) { unset($tree[$child]); $return[] = array( 'name' => $child, 'children' => parseTree($tree, $child) ); } } return empty($return) ? null : $return; }
printTree 함수:
function printTree($tree) { if(!is_null($tree) && count($tree) > 0) { echo '<ul>'; foreach($tree as $node) { echo '<li>' . $node['name']; printTree($node['children']); echo '</li>'; } echo '</ul>'; } }
사용법:
이러한 함수를 사용하려면 먼저 하위-상위 쌍 배열을 초기화하세요. 그런 다음 배열로 parseTree를 호출하고 결과 트리로 printTree를 호출합니다.
$tree = array( 'H' => 'G', 'F' => 'G', 'G' => 'D', 'E' => 'D', 'A' => 'E', 'B' => 'C', 'C' => 'E', 'D' => null ); $result = parseTree($tree); printTree($result);
결과:
출력 계층 트리를 나타내는 순서가 지정되지 않은 목록입니다.
<ul> <li>D <ul> <li>G <ul> <li>H</li> <li>F</li> </ul> </li> <li>E <ul> <li>A</li> <li>C <ul> <li>B</li> </ul> </li> </ul> </li> </ul> </li> </ul>
위 내용은 PHP에서 부모-자식 관계를 계층 트리로 변환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!