Cette discussion se concentre sur la récupération d'une structure de données hiérarchique à partir d'une base de données et sa conversion en un tableau multidimensionnel dans une seule requête. Le but est d'obtenir un tableau représentant la structure arborescente des données.
Pour extraire une structure arborescente d'une base de données, une table de fermeture est couramment utilisée. Une table de fermeture enregistre les relations entre les ancêtres et les descendants au sein d'une hiérarchie, permettant une interrogation efficace des descendants.
Étant donné la clé primaire d'un nœud, il est possible d'interroger ses descendants à l'aide de SQL. en procédant comme suit :
Le résultat SQL est ensuite traité de la manière suivante :
En PHP, en utilisant le Zend Framework, le code suivant démontre le processus :
// Get taxonomy table instance $tax = new Taxonomy(); // Fetch tree starting at Rodentia (id 180130) to a depth of 2 $tree = $tax->fetchTree(180130, 2); // Dump the array var_export($tree->toArrayDeep());
La sortie est un tableau multidimensionnel représentant la structure arborescente des données, tel que :
array ( 'tsn' => '180130', 'completename' => 'Rodentia', '_parent' => '179925', '_children' => [ // Child rows... ], )
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!