Salut,
Même dans ce cas cela pourrait fonctionner si par exemple quand il n'y a pas de sous-catégories on a quand même une balise <ul> qui dans ce cas serait vide...
Mais bon mon code était juste un exemple simple pour démarrer après pour ce genre de structure imbriquées c'est vrai qu'une fonction récursive est tout à fait indiquée (ce que jreaux62 a fait)... Cela ne veut pas dire qu'on ne peut pas l'éviter d'ailleurs dans le fil que j'ai mentionné (Convertir des listes à la syntaxe particulière en HTML) on a un bon exemple des deux manières de faire (récursif et non récursif)...
Mais c'est vrai que dans ce fil Parcourir un bookmark FF a un moment donné j'ai fini par utiliser une fonction récursive pour obtenir dans un premier temps un tableau contenant toutes les infos nécessaires en particulier la profondeur (deph) :
Cela me fait penser au tableau obtenu par le code de jreaux62 sauf que lui a ajouter un paramètre pour le parent mais pour construire une structure genre JSON le deph est suffisant...
Oui son code est plus complexe à comprendre notamment à cause de la fonction récursive mais aussi parce que son code va plus loin (il construit automatiquement les trois listes liées) donc c'est normal qu'il soit plus long à analyser puisqu'il fait plus de chose, il est plus complet...
Il te faut séparer les différentes étapes du code (savoir qui fait quoi) et à la limite si tu ne comprends pas la fonction récursive tu peux te contenter de savoir ce qu'elle fait, ce qu'elle produit...
Un des avantages de la fonction récursive c'est que la profondeur de l’arborescence peut varier autant qu'on veut, elle peut être plus courte (exemple une catégorie sans sous-catégories) ou plus longue (exemple une sous-sous-catégorie ayant des sous-sous-sous-catégories).
Cela me semble être la meilleure solution...
Et les tableaux au-delà de deux dimensions cela devient franchement lourd...
Partager