PHP/MySQL에서 계층적 데이터(범주)를 시각화하는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-23 18:22:35
원래의
522명이 탐색했습니다.

How to Visualize Hierarchical Data (Categories) in PHP/MySQL?

PHP/MySQL의 카테고리 계층

카테고리와 같은 계층적 데이터를 처리할 때는 이를 구조화된 방식으로 표현하는 것이 중요합니다. 일반적인 접근 방식 중 하나는 각 행이 카테고리를 나타내고 해당 상위 카테고리를 나타내는 필드가 있는 인접 목록 모델을 사용하는 것입니다.

계층 구조 얻기

PHP를 사용하면 MySQL에서 카테고리 데이터를 검색하고 단일 패스로 계층 구조를 구축할 수 있습니다. Nate Weiner의 "One Pass Parent-Child Array Structure"에서 영감을 받은 아래 코드:

<code class="php">$refs = [];
$list = [];

$sql = "SELECT category_id, parent_id, category_name FROM categories ORDER BY category_name";

foreach ($result as $row) {
    $ref = &$refs[$row['category_id']];

    $ref['parent_id'] = $row['parent_id'];
    $ref['category_name'] = $row['category_name'];

    if ($row['parent_id'] == 0) {
        $list[$row['category_id']] = &$ref;
    } else {
        $refs[$row['parent_id']]['children'][$row['category_id']] = &$ref;
    }
}</code>
로그인 후 복사

이 루프는 두 개의 배열을 채웁니다. $refs에는 각 카테고리에 대한 참조가 포함되고 $list에는 최상위 카테고리가 포함됩니다. (상위 없음).

계층 표현 생성

계층의 시각적 표현을 생성하려면 재귀 함수를 사용하여 중첩된 HTML 목록을 생성할 수 있습니다. 다음 코드를 고려해보세요.

<code class="php">function toUL(array $array) {
    $html = '<ul>' . PHP_EOL;

    foreach ($array as $value) {
        $html .= '<li>' . $value['category_name'];
        if (!empty($value['children'])) {
            $html .= toUL($value['children']);
        }
        $html .= '</li>' . PHP_EOL;
    }

    $html .= '</ul>' . PHP_EOL;

    return $html;
}</code>
로그인 후 복사

이 함수는 범주 배열을 입력으로 사용하고 중첩된 HTML 목록을 반복적으로 작성합니다. 그런 다음 결과 HTML을 출력하여 카테고리 계층 구조를 표시할 수 있습니다.

위 내용은 PHP/MySQL에서 계층적 데이터(범주)를 시각화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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