Construire une structure arborescente à partir d'une liste de tableaux
Étant donné une liste de tableaux d'éléments avec des relations hiérarchiques, comment pouvons-nous la transformer efficacement en un structure arborescente imbriquée ?
Solution :
Pour y parvenir conversion sans utiliser d'optimisations de base de données complexes, nous pouvons utiliser une fonction récursive :
$arr = array( array('id' => 100, 'parentid' => 0, 'name' => 'a'), array('id' => 101, 'parentid' => 100, 'name' => 'a'), array('id' => 102, 'parentid' => 101, 'name' => 'a'), array('id' => 103, 'parentid' => 101, 'name' => 'a'), ); $new = array(); foreach ($arr as $a) { $new[$a['parentid']][] = $a; } $tree = createTree($new, array($arr[0])); print_r($tree); function createTree(&$list, $parent){ $tree = array(); foreach ($parent as $k => $l){ if(isset($list[$l['id']])){ $l['children'] = createTree($list, $list[$l['id']]); } $tree[] = $l; } return $tree; }
Ce code organise les éléments dans une structure hiérarchique imbriquée, représentant les relations parent-enfant entre eux. La structure arborescente résultante peut être imprimée à l'aide de print_r.
En tirant parti d'une fonction récursive, nous pouvons transformer efficacement une liste de tableaux en une structure arborescente, permettant une navigation et une organisation faciles des données.
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!