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
687 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!

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