|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||||||
|
Invité de passage
![]() Ingénieur systèmes et réseaux Inscription : juillet 2011 Messages : 5 ![]() |
Bonjour
Pour commencer merci pour ce site qui m'a de nombreuses fois aidé. Voila mon problème : je souhaite faire une fonction php qui construit une structure de graphe simple c'est à dire un tableau contenant des doublets (String, array), les array du doublet étant des tableaux de doublets etc. voici mon code : la classe doublet : Code :
Code :
Code :
Code :
racine+++fils1+++fils2.html (ou autre extension osef) racine+++fils_a+++fils_b+++fils_c.html racine2+++fils_omega.html dans cet exemple le résultat devrait être un arbre (graphe) de cette forme: racine |-fils1 |-|-fils2 |-fils_a |-|-fils_b |-|-|-fils_c racine2 |-fils_omega mais cela ne marche que pour les racines et la première branche ici le résultat serait : racine |-fils1 |-|-fils2 racine2 |-fils_omega Sachant que quand je place des "echo" pour voir ce qu'il se passe, à la construction tout semble bien se passer (les tableaux de chaque niveaux ont le bon nombre d'éléments) mais quand vient le moment d'afficher, les noeuds (normalement) ajoutés à une branche déjà existante ont disparus. je me demande si il n'y a pas un problème de portée de variable mais en essayant de mettre les tableaux en "global" ça n'a rien changé. Si quelqu'un voit ce qui pose problème, car je sèche et c'est pas faute d'avoir essayé des choses. Merci d'avance. |
||||||||
|
|
00
|
|
|
#2 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Hello
Essaie plutôt ça: - http://www.php.net/manual/en/class.r...ryiterator.php - http://www.php.net/manual/en/class.r...eeiterator.php Exemple: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#3 |
|
Invité de passage
![]() Ingénieur systèmes et réseaux Inscription : juillet 2011 Messages : 5 ![]() |
Merci pour cette réponse, ce code fonctionne bien sûr mais ne fait pas ce que je veux
|
|
|
00
|
|
|
#4 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Quel est ton besoin concrètement ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() Ingénieur systèmes et réseaux Inscription : juillet 2011 Messages : 5 ![]() |
C'est ce que j'ai expliqué en bas de message, faire un explode() du nom de fichier et que chaque item soit une partie d'une arborescence.
J'ai même mis un exemple, pourtant il me semblait avoir détaillé mon problème. DSL |
|
|
00
|
|
|
#6 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Je crois que c'est la façon que tu as de construire ton arbre qui est incorrecte. De plus tu n'as pas vraiment besoin de tout ça, un arbre en PHP se modélise très bien avec des tableaux associatifs et se parcours en récursion avec un ReccursiveIterator. L'algo pour implémenter ça manuellement n'est d'ailleurs pas franchement complexe.
ça peut se faire comme ça: Code :
Si ton but est plus de trouver les feuilles que de parcourir l'arbre, tu peux faire: Code :
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||||
|
00
|
|
|
#7 | ||||||||
|
Invité de passage
![]() Ingénieur systèmes et réseaux Inscription : juillet 2011 Messages : 5 ![]() |
Merci pour ta réponse, lire le code que tu as mis m'a fait penser à un truc, qui, par effet boule de neige m'a permis de trouver ou était mon erreur, il s'agissait d'un retour de récursivité que je n'enregistrais pas, donc du coup le parcours était correct mais pas sauvegardé en intégralité.
@Benjamin Delespierre Je suis conscient qu'il y a de meilleurs moyens de faire que le mien, si je n'étais pas arrivé à débogger mon code j'aurais sûrement creusé dans le sens de ta proposition, merci encore .pour ceux qui serait curieux de voir ou était l'erreur je reposte mon code fonctionnel : la classe doublet qui est devenue noeud : Code :
Code :
Code :
Code :
|
||||||||
|
|
00
|
|
|
#8 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
N'oublie pas le
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
01
|
Copyright © 2000-2012 - www.developpez.com