Function recursive pour arborescence
Posté : 26 mai 2011, 15:05
Bonjour à tous,
Je viens vous demander un peu d'aide car je suis bloqué sur une fonction que je n'arrive pas à créer. J'ai une table dans laquelle mes pages sont stockées et chaque page peut avoir un parent_id.
Je souhaite faire une fonction pour récupérer dans un tableau toute mon arborescence
J'ai une classe Page avec une methode GetList qui me retourne un objet avec toute mes pages sous la forme :
Et je voudrais donc une fonction pour retourner un tableau multidimensionnel de cette forme :
Comment faire une fonction récursive pour obtenir ce dont j'ai besoin.
D'avance merci à tous.
Je viens vous demander un peu d'aide car je suis bloqué sur une fonction que je n'arrive pas à créer. J'ai une table dans laquelle mes pages sont stockées et chaque page peut avoir un parent_id.
Je souhaite faire une fonction pour récupérer dans un tableau toute mon arborescence
J'ai une classe Page avec une methode GetList qui me retourne un objet avec toute mes pages sous la forme :
Code : Tout sélectionner
Array
(
[0] => Page Object
(
[page_id] => 1
[page_nom] => NOM1
[parent_id] => 0
)
[1] => Page Object
(
[page_id] => 2
[page_nom] => NOM2
[parent_id] => 0
)
[2] => Page Object
(
[page_id] => 3
[page_nom] => NOM3
[parent_id] => 2
)
[3] => Page Object
(
[page_id] => 4
[page_nom] => NOM4
[parent_id] => 0
)
[4] => Page Object
(
[page_id] => 5
[page_nom] => NOM5
[parent_id] => 0
)
[5] => Page Object
(
[page_id] => 6
[page_nom] => NOM6
[parent_id] => 1
)
[6] => Page Object
(
[page_id] => 7
[page_nom] => NOM7
[parent_id] => 2
)
[7] => Page Object
(
[page_id] => 9
[page_nom] => NOM9
[parent_id] => 1
)
[8] => Page Object
(
[page_id] => 10
[page_nom] => NOM10
[parent_id] => 2
)
)
Code : Tout sélectionner
Array
(
[0] => Array
(
[id] => 1
[name] => NOM1
[children] => Array
(
[0] => Array
(
[id] => 6
[name] => NOM6
[children] => Array
(
)
)
[1] => Array
(
[id] => 9
[name] => NOM9
[children] => Array
(
)
)
)
)
[1] => Array
(
[id] => 2
[name] => NOM2
[children] => Array
(
[0] => Array
(
[id] => 3
[name] => NOM3
[children] => Array
(
)
)
[1] => Array
(
[id] => 7
[name] => NOM7
[children] => Array
(
)
)
[2] => Array
(
[id] => 10
[name] => NOM10
[children] => Array
(
)
)
)
)
[2] => Array
(
[id] => 4
[name] => NOM4
[children] => Array
(
)
)
[3] => Array
(
[id] => 5
[name] => NOM5
[children] => Array
(
)
)
)
D'avance merci à tous.