Création d'une fonction récursive pour parcourir une structure de menu hiérarchique stockée dans une base de données et la générer dans HTML peut être un défi. Étant donné un tableau avec des catégories et leurs catégories parentes, la tâche consiste à générer une arborescence de menus qui représente visuellement la hiérarchie.
Pour résoudre ce problème, une fonction récursive est nécessaire. L'idée est de commencer par la catégorie racine, de trouver ses enfants et d'appeler récursivement la fonction sur chaque enfant, en construisant la sortie HTML au fur et à mesure.
Voici un implémentation possible de la fonction 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>
Pour utiliser la fonction :
L'implémentation initiale peut produire des fichiers
<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>
Cette modification garantit que seules les catégories avec des enfants ont
Vous pouvez également ajouter un nombre d'enfants à chaque catégorie et inclure uniquement les éléments
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!