>데이터 베이스 >MySQL 튜토리얼 >PHP에서 재귀 함수를 사용하여 에코 메뉴 트리를 만드는 방법은 무엇입니까?

PHP에서 재귀 함수를 사용하여 에코 메뉴 트리를 만드는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2024-10-27 06:58:291003검색

 How to Create an Echo Menu Tree Using a Recursive Function in PHP?

재귀 함수가 포함된 에코 메뉴 트리

문제 개요

데이터베이스에 저장된 계층적 메뉴 구조를 탐색하고 HTML은 어려울 수 있습니다. 카테고리와 해당 상위 카테고리가 있는 테이블이 주어지면 계층 구조를 시각적으로 나타내는 메뉴 트리를 생성하는 것이 임무입니다.

재귀 함수 접근 방식

이 문제를 해결하려면 재귀 함수가 필요합니다. 아이디어는 루트 카테고리에서 시작하여 해당 하위 항목을 찾고, 각 하위 항목에 대해 함수를 재귀적으로 호출하여 진행하면서 HTML 출력을 구축하는 것입니다.

PHP 함수 구현

다음은 가능한 PHP 함수 구현:

<code class="php">function recurse($categories, $parent = null, $level = 0)
{
    $ret = '<ul>';
    foreach($categories as $index => $category)
    {
        if($category['root'] == $parent)
        {
            $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
            $ret .= $this->recurse($categories, $category['id'], $level+1);
            $ret .= '</li>';
        }
    }
    return $ret . '</ul>';
}</code>
  1. $categories(범주 데이터 배열), $parent(현재 상위 범주 ID) 및 $level(결정하는) 세 가지 매개 변수를 사용합니다. 들여쓰기 수준).
  2. 카테고리를 반복하여 해당 루트가 제공된 상위 ID와 일치하는지 확인합니다.
  3. 일치하는 경우 카테고리 이름을 li로 묶어서 출력합니다. 들여쓰기에 적합한 Tier 클래스가 있는 요소.
  4. 그런 다음 다음 수준의 범주로 자신을 재귀적으로 호출하여 새 상위 ID를 설정하고 수준을 높입니다.

사용법

함수 사용 방법:

  1. 데이터베이스를 쿼리하여 모든 카테고리를 검색합니다.
  2. 카테고리 데이터를 첫 번째 매개변수로 사용하여 recurse()를 호출합니다.
  3. 반환된 HTML 출력을 에코합니다.

빈 하위 카테고리 처리

초기 구현에서는 빈

    하위 항목이 없는 카테고리의 요소입니다. 이를 방지하려면 다음과 같이 기능을 수정하면 됩니다.

    <code class="php">function recurse($categories, $parent = null, $level = 0)
    {
        $ret = '<ul>';
        foreach($categories as $index => $category)
        {
            if($category['root'] == $parent)
            {
                $ret .= '<li><a href="#"><p class="Tier' . $level . '">' . $category['name'] . '</p></a>';
                $sub = $this->recurse($categories, $category['id'], $level+1);
                if($sub != '<ul></ul>')
                    $ret .= $sub;
                $ret .= '</li>';
            }
        }
        return $ret . '</ul>';
    }</code>

    이 수정을 통해 하위 항목이 있는 카테고리에만

      또는 각 카테고리에 하위 개수를 추가하고

        자녀 수가 0보다 큰 경우

        위 내용은 PHP에서 재귀 함수를 사용하여 에코 메뉴 트리를 만드는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.