인터넷의 급속한 발전으로 인해 웹사이트 기능과 요구 사항이 점점 더 복잡해지고 있습니다. 그 중 무한 분류 기능은 정보를 정리하고 관리하는 매우 중요한 방법입니다. 이는 개발자가 정보를 효과적으로 구성하여 사용자가 필요한 것을 더 빨리 찾을 수 있도록 도와줍니다. 오늘은 PHP 개발에서 무제한 분류 기능을 활용하는 방법을 소개하겠습니다.
무제한 분류 기능이 무엇인가요?
기존 분류에서는 각 카테고리에 상위 카테고리가 하나만 있을 수 있고 하위 카테고리가 여러 개 있을 수 있습니다. 그러나 일부 복잡한 시나리오에서는 이 분류 방법이 제한됩니다. 예를 들어, 제품은 여러 브랜드, 여러 분류 그룹, 여러 지역 등에 속할 수 있습니다. 이때 무제한 분류 기능은 더 나은 솔루션을 제공할 수 있습니다.
무제한 분류 기능은 이름에서 알 수 있듯이 등급 제한이 없으며 분류를 자유롭게 결합할 수 있으며 하나의 데이터가 여러 범주에 속할 수 있습니다. 이 기능은 블로그 분류, 상품 분류, 뉴스 분류 등 유연한 데이터 구성이 필요한 시나리오에 적합합니다.
무제한 분류 기능 구현 방법
아래에서는 PHP 개발 시 무제한 분류 기능을 구현하는 방법을 단계별로 소개하겠습니다.
1단계: 데이터베이스 테이블 만들기
데이터베이스 테이블을 만들 때 카테고리 ID, 카테고리 이름, 카테고리 상위 ID라는 세 가지 주요 필드를 고려해야 합니다. 카테고리 ID는 각 카테고리의 고유 식별자이고, 카테고리 이름은 카테고리 정보를 표시하는 데 사용되며, 카테고리 상위 ID는 해당 카테고리의 상위 카테고리 ID를 나타냅니다.
CREATE TABLE 범주
(categories
(
id
int(11) NOT NULL,
name
varchar(100) NOT NULL,
parent_id
int(11) NOT NULL,
PRIMARY KEY (id
)
);
第二步:插入分类数据
在数据库表中插入分类数据时,可以使用嵌套集合模型的方式,即用左右值描述每个分类层级组织关系,示例如下:
INSERT INTO categories
(id
, name
, parent_id
, lft
, rgt
id
int(11) NOT NULL,
name
varchar(100) NOT NULL,
parent_id
int(11) NOT NULL,
PRIMARY KEY (id
)
);
categories
(id
, 이름
, parent_id
, lft
, rgt
) VALUES(1, '전기 가전제품', 0, 1, 10),
(2, 'TV', 1, 2, 3),(3, '휴대폰 가전제품', 1, 4, 9),
(4, '스마트폰', 3, 5, 6),
{
$sql = 'SELECT * FROM `categories` WHERE `parent_id` = ? ORDER BY `lft` ASC'; $stmt = $pdo->prepare($sql); $stmt->execute([$parentId]); $categories = $stmt->fetchAll(PDO::FETCH_ASSOC); if (!empty($categories)) { $level++; $categories = array_map(function ($category) use ($level) { $category['level'] = $level; $category['children'] = getCategories($category['id'], $level); return $category; }, $categories); } return $categories;} 이 함수에서는 먼저 현재 상위 범주 아래의 모든 하위 범주를 쿼리하고 lvalue를 기준으로 정렬합니다. 그런 다음 자신을 재귀적으로 호출하여 하위 범주의 하위 범주를 쿼리하고 하위 필드에 저장합니다. 마지막으로 범주형 배열이 반환됩니다. 4단계: 범주형 데이터 표시범주형 데이터를 표시할 때 재귀 순회를 사용할 수 있습니다. 예는 다음과 같습니다. function showCategories($categories)🎜{🎜
if (!empty($categories)) { echo '<ul>'; foreach ($categories as $category) { echo '<li>' . $category['name'] . '</li>'; if (!empty($category['children'])) { showCategories($category['children']); } } echo '</ul>'; }🎜}🎜🎜이 함수에서는 먼저 다음을 결정합니다. 카테고리 배열이 비어 있는지 여부. 그렇지 않으면 배열을 순회하여 카테고리 이름을 표시합니다. 그런 다음 범주에 하위 범주가 있으면 자신을 재귀적으로 호출하여 하위 범주를 표시합니다. 🎜🎜결론🎜🎜위의 4단계를 통해 무제한 분류 기능을 쉽게 구현할 수 있고, 분류된 데이터를 재귀적으로 표시할 수도 있습니다. 이 기능은 실제 개발, 특히 전자상거래, 뉴스, 블로그 및 기타 시나리오에서 매우 일반적입니다. 이 기사가 PHP 개발자에게 영감을 주고 실제 개발 요구 사항에 더 잘 대처하는 데 도움이 되기를 바랍니다. 🎜
위 내용은 PHP 개발에서 무제한 분류 기능을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!