배열 목록에서 중첩 배열 트리 만들기
상위-하위 관계를 갖는 요소 배열이 있고 이를 다음으로 변환하려고 합니다. 중첩 배열 트리. 효율적인 솔루션은 다음과 같습니다.
# Create a new array indexed by parent ID $new = []; foreach ($arr as $a) { $new[$a['parentid']][] = $a; } # Start with the root node $tree = createTree($new, [$arr[0]]); # Recursive function to build the tree function createTree(&$list, $parent) { $tree = []; foreach ($parent as $l) { # If there are children, create children tree if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } # Add parent to the tree $tree[] = $l; } return $tree; }
이 알고리즘은 원래 배열의 상위-하위 관계를 기반으로 중첩 배열 트리를 효율적으로 구성합니다.
위 내용은 평면 배열 목록에서 중첩 배열 트리를 효율적으로 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!