Fonction récursive pour construire un tableau multidimensionnel à partir du résultat d'une base de données
Problème :
Vous recherchez un fonction récursive capable de transformer un tableau de pages et de catégories à partir d'un résultat de base de données aplati en un tableau imbriqué avec une hiérarchie structurée relations.
Solution :
La solution fournie propose une approche simple et générique :
function buildTree(array $elements, $parentId = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; } } return $branch; }
Explication :
L'algorithme fonctionne comme suit :
Exécution initiale (ParentId = 0) :
Exécution récursive (ParentId != 0) :
Construire la hiérarchie :
Résultat du retour :
En appliquant cette fonction au résultat de votre base de données, vous obtenez un tableau organisé avec des relations hiérarchiques granulaires, comme en témoigne le résultat souhaité. Cette approche est polyvalente et peut être appliquée à la fois aux pages et aux catégories.
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!