Maison > développement back-end > tutoriel php > Comment créer efficacement une arborescence de tableaux imbriqués à partir d'une liste de tableaux plats ?

Comment créer efficacement une arborescence de tableaux imbriqués à partir d'une liste de tableaux plats ?

Susan Sarandon
Libérer: 2024-12-25 18:50:10
original
759 Les gens l'ont consulté

How to Efficiently Create a Nested Array Tree from a Flat Array List?

Création d'un arbre de tableaux imbriqué à partir d'une liste de tableaux

Vous disposez d'un tableau d'éléments avec des relations parent-enfant et souhaitez le transformer en une arborescence de tableaux imbriquée. Voici une solution efficace :

# Create a new array indexed by parent ID
$new = [];
foreach ($arr as $a) {
    $new[$a['parentid']][] = $a;
}

# Start with the root node
$tree = createTree($new, [$arr[0]]);

# Recursive function to build the tree
function createTree(&$list, $parent) {
    $tree = [];
    foreach ($parent as $l) {
        # If there are children, create children tree
        if (isset($list[$l['id']])) {
            $l['children'] = createTree($list, $list[$l['id']]);
        }

        # Add parent to the tree
        $tree[] = $l;
    }
    return $tree;
}
Copier après la connexion

Cet algorithme construit efficacement une arborescence de tableaux imbriqués basée sur les relations parent-enfant dans votre tableau d'origine.

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!

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