Maison > développement back-end > tutoriel php > Comment une fonction récursive peut-elle créer un tableau multidimensionnel à partir des résultats d'une base de données plate ?

Comment une fonction récursive peut-elle créer un tableau multidimensionnel à partir des résultats d'une base de données plate ?

Linda Hamilton
Libérer: 2024-12-30 06:15:12
original
641 Les gens l'ont consulté

How Can a Recursive Function Build a Multidimensional Array from Flat Database Results?

Génération d'un tableau multidimensionnel à partir des résultats de la base de données à l'aide d'une fonction récursive

Pour générer un tableau imbriqué représentant des données hiérarchiques telles que des pages ou des catégories, une fonction récursive est souvent employé. L'objectif est de prendre un tableau plat d'enregistrements de base de données et de le transformer en un tableau structuré reflétant les relations parent-enfant.

Fonction récursive pour la construction d'arbres

Ce qui suit La fonction, buildTree, réalise cette tâche :

def buildTree(elements, parentId=0):
    branch = []
    for element in elements:
        if element['parent_id'] == parentId:
            children = buildTree(elements, element['id'])
            if children:
                element['children'] = children
            branch.append(element)
    return branch
Copier après la connexion

Comment ça Works

  1. Initialiser la branche : Pour un ID parent donné, créez une liste de branches vide pour contenir les éléments enfants.
  2. Itérer sur les éléments : Parcourez tous les éléments du tableau plat.
  3. Identifiez Enfants : Si l'id parent_id d'un élément correspond à l'ID parent actuel, c'est un enfant de la branche.
  4. Récurse pour les enfants : Appelez la fonction de manière récursive pour l'enfant identifié, en trouvant son sous -children.
  5. Ajouter à la branche : Ajouter l'élément enfant avec ses sous-enfants (le cas échéant) à la liste des succursales.
  6. Retourner la branche :Une fois que tous les enfants sont traités, renvoyez la liste des succursales remplie.

Exemple d'utilisation

Pour traiter les enregistrements de votre base de données dans un arbre hiérarchique, utilisez :

tree = buildTree(database_result)
Copier après la connexion

La variable arbre contiendra désormais un tableau imbriqué représentant la structure hiérarchique des pages ou des 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