메뉴 트리 생성을 위한 재귀
귀하의 상황에서는 카테고리에 상위 카테고리를 나타내는 '루트' 필드가 있는 데이터베이스 구조가 있습니다. . 원하는 HTML 출력에는 범주 계층 구조를 나타내는 중첩 목록이 포함됩니다. 이를 달성하기 위해 재귀 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>
이 함수는 루트 범주에 null 값이 있는 '루트' 필드가 있다고 가정합니다. 카테고리를 반복하고, '루트' 필드를 기준으로 하위 카테고리를 식별하고, 중첩 목록을 사용하여 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>
이 수정된 기능은 카테고리에 하위 항목이 하나 이상 있는 경우에만 목록을 생성합니다.
위 내용은 상위 카테고리가 있는 데이터베이스에서 중첩된 메뉴 트리를 생성하기 위해 재귀를 어떻게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!