Création d'arbres de tableaux à partir de listes de tableaux
Dans les situations où vous avez une liste d'éléments avec des relations hiérarchiques, la convertir en un arbre la structure peut être cruciale. Cette transformation est particulièrement utile lorsqu'il s'agit de données complexes qui nécessitent une organisation et une récupération efficaces.
Considérons la liste suivante à titre d'exemple :
[ {id: 100, parentId: 0, name: 'a'}, {id: 101, parentId: 100, name: 'a'}, {id: 102, parentId: 101, name: 'a'}, {id: 103, parentId: 101, name: 'a'}, ]
Le but est de réorganiser cette liste en une liste hiérarchique structure arborescente, où chaque élément a une référence à son parent et à ses enfants (le cas échéant).
Une approche efficace pour réaliser cette conversion est démontrée par le code suivant extrait :
<?php $arr = [ ['id' => 100, 'parentId' => 0, 'name' => 'a'], ['id' => 101, 'parentId' => 100, 'name' => 'a'], ['id' => 102, 'parentId' => 101, 'name' => 'a'], ['id' => 103, 'parentId' => 101, 'name' => 'a'], ]; $new = []; foreach ($arr as $a) { $new[$a['parentId']][] = $a; } $tree = createTree($new, [$arr[0]]); print_r($tree); function createTree(&$list, $parent) { $tree = []; foreach ($parent as $k => $l) { if (isset($list[$l['id']])) { $l['children'] = createTree($list, $list[$l['id']]); } $tree[] = $l; } return $tree; }
Ce code traite efficacement la liste d'entrée en regroupant les éléments en fonction de leur parentId. Il construit ensuite de manière récursive la structure arborescente, en remplissant chaque élément avec ses enfants. L'arborescence résultante fournit une représentation hiérarchique de la liste d'origine, ce qui facilite la navigation et la récupération des données en fonction des relations parent-enfant.
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!