Je retourne une liste de pages et leurs pages parent à partir d'une base de données MySQL et de mettre tous les résultats dans un tableau comme suit où chaque résultat est un tableau qui comprend le parent, le nom et l'id du forum (la clé des pages de tableau est également la même que celle de la page). Pour les besoins du modèle et de l'application, il existe d'autres paramètres.PHP Construire récursive tableau de la liste
- "pages racine" ont un parent de 0
- il n'y a pas pages orphelines
donc, la requête MySQL retournera cet ensemble de données.
pages=>
[1] => array(id=>1,
parent=>0,
name=>Hello World)
[2] => array(id=>1,
parent=>1,
name=>Child of Hello World)
[3] => array(id=>1,
parent=>0,
name=>Brother of Hello World)
[4] => array(id=>4,
parent=>2,
name=Grand-child of Hello World)
[6] => array(id=>6,
parent=>4,
name=Great-grand-child of Hello World)
je voudrais ensuite transformer le tableau en quelque chose qui ressemble à ceci
pages=>
[1] => id=>1,
name=>Hello World
children=>
[2] => id=>1
name=>Child of Hello World
children=>
[4] =>
id=>4
name=> Grand-child of Hello World)
children=>
[6] =>
id=>6
name=> Great-grand-child of Hello World
children= null
[3] => array(id=>1,
name=>Brother of Hello World
children=>null
Donc, fondamentalement, je veux tourner un réseau linéaire dans un tableau multidimensionnel imbriqué afin que je puisse imprimer mon plan Sitemap .
il doit s'agir d'une solution récursive. il y a plus de 700 pages et jusqu'à 5 ou 6 niveaux. Je veux seulement faire 1 requête mysql. pas 700 alors s'il vous plaît ne me donnez pas une solution basée sur mysql.
s'il vous plaît utilisez votre moteur de recherche préféré et recherchez « MySQL ensembles imbriqués » – knittl