웹 애플리케이션 개발에서, 제품 분류, 기사 분류, 권한 메뉴 등과 같은 다단계 분류 디스플레이 요구는 매우 일반적입니다. 이 기사는 PHP를 사용하여 효율적인 무한 수준 분류 트리 구조를 구축하는 방법을 자세히 소개합니다.
무한 수준 분류를 달성하기 위해서는 합리적인 데이터 테이블 구조가 먼저 필요합니다. 일반적으로 간단한 자체 관련성 테이블을 사용하여 분류 된 데이터를 저장합니다.
CREATE TABLE categories (
id INT PRIMARY KEY AUTO_INCREMENT,
parent_id INT NOT NULL,
name VARCHAR(50) NOT NULL
);
테이블에서 ID는 각 범주의 고유 식별자이며, Parent_ID는 상위 클래스를 나타내고, 최상위 클래스의 parent_id는 일반적으로 0으로 설정 되고 이름은 범주 이름입니다.
트리 구조를 표시하기 전에 먼저 데이터베이스에서 전체 분류 데이터를 추출하고 중첩 관계를 재귀 적으로 생성해야합니다.
function getCategories($parent_id = 0) {
$categories = [];
$query = "SELECT id, name FROM categories WHERE parent_id = :parent_id";
$stmt = $pdo->prepare($query);
$stmt->execute(['parent_id' => $parent_id]);
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
$categories[$row['id']] = [
'id' => $row['id'],
'name' => $row['name'],
'children' => getCategories($row['id'])
];
}
return $categories;
}
위의 코드는 완전한 분류 트리를 재귀 적으로 생성하며 각 분류에는 모든 하위 범주에 대한 정보가 포함되어 있습니다.
Call example:
$categories = getCategories();
웹 페이지에 분류 된 데이터를 명확하게 표시하려면 HTML의 순서대로 목록 요소를 사용하여 재귀 적으로 렌더링 할 수 있습니다.
function renderCategories($categories) {
echo '<ul>';
foreach ($categories as $category) {
echo '<li>' . $category['name'] . '</li>';
if (!empty($category['children'])) {
echo '<ul>';
renderCategories($category['children']);
echo '</ul>';
}
}
echo '</ul>';
}
renderCategories($categories);
이 함수는 재귀 방법을 통해 층별로 중첩 분류 계층을 전개하고 명확한 계층 구조로 HTML 형식으로 표시합니다.
무한 수준 분류 트리 구조를 구현하기 위해 PHP를 사용하는 핵심은 재귀 처리 및 합리적인 데이터 표시에 있습니다. 이 방법은 컨텐츠 관리 시스템이든 제품 분류에 관계없이 매우 실용적입니다. 이 기사의 설명이 무한 분류의 구현 방법을 더 잘 이해하고 적용하는 데 도움이되기를 바랍니다.