PHP의 플랫 배열에서 트리 구조를 구축하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2024-11-26 20:13:16
원래의
154명이 탐색했습니다.

How to Build a Tree Structure from a Flat Array in PHP?

PHP의 평면 배열에서 트리 구축

계층적 데이터 구조로 작업할 때 일반적인 작업은 평면 배열을 평면 배열로 변환하는 것입니다. 나무 같은 구조. 이는 부모-자식 관계를 식별하고 그에 따라 요소를 중첩함으로써 수행할 수 있습니다.

이에 접근하는 한 가지 방법은 배열을 반복하고 각 요소의 parent_id 값을 검사하는 것입니다. 요소의 parent_id가 0이면 루트 수준 항목으로 간주됩니다. 다른 요소의 경우 해당 parent_id를 사용하여 트리 내의 계층 구조를 결정할 수 있습니다.

원래 배열을 보존하려면 요소가 트리에 추가될 때 요소의 복사본을 만드는 것이 좋습니다. 이는 array_values() 함수를 사용하여 달성할 수 있습니다.

다음은 구현 예입니다.

function buildTree(array &$elements, $parentId = 0) {
  $branch = array();

  foreach ($elements as $element) {
    if ($element['parent_id'] == $parentId) {
      $children = buildTree($elements, $element['id']);
      if ($children) {
        $element['children'] = $children;
      }
      $branch[] = $element;
    }
  }

  return $branch;
}
로그인 후 복사

결과 트리에서 중복 요소를 방지하려면 처리된 요소의 설정을 해제하는 것이 중요합니다. 원래 배열. 루프 내에 코드 한 줄을 추가하면 됩니다.

unset($elements[$element['id']]);
로그인 후 복사

이 수정된 함수를 사용하면 플랫 배열을 계층적 트리 구조로 변환할 수 있습니다. 결과는 각 상위 요소 아래에 중첩된 하위 요소가 있는 배열이 됩니다.

위 내용은 PHP의 플랫 배열에서 트리 구조를 구축하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿