Maison > développement back-end > tutoriel php > Comment créer de manière récursive un tableau multidimensionnel à partir d'un résultat de base de données plat ?

Comment créer de manière récursive un tableau multidimensionnel à partir d'un résultat de base de données plat ?

Patricia Arquette
Libérer: 2024-12-23 10:53:09
original
544 Les gens l'ont consulté

How to Recursively Build a Multidimensional Array from a Flat Database Result?

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;
}
Copier après la connexion

Explication :

L'algorithme fonctionne comme suit :

  1. Exécution initiale (ParentId = 0) :

    • Considère l'ensemble des éléments.
    • Identifie les éléments avec parent_id égal à 0 (nœuds racine).
    • Récursivement appelle buildTree sur ces éléments pour trouver leurs enfants.
  2. Exécution récursive (ParentId != 0) :

    • Considére uniquement les éléments qui correspondent au parent_id spécifié.
    • Appelle récursivement buildTree sur ceux-ci éléments pour retrouver leurs enfants.
  3. Construire la hiérarchie :

    • Les éléments identifiés comme enfants du parent actuel sont incorporés dans un tableau.
    • Ce tableau est affecté à la propriété "children" du parent element.
  4. Résultat du retour :

    • Les appels récursifs renvoient des tableaux d'éléments enfants pour chaque niveau de la hiérarchie.
    • La fonction culmine en renvoyant un tableau imbriqué complet représentant la hiérarchie structure.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal