Création récursive d'un tableau multidimensionnel à partir des résultats de la base de données
Pour récupérer des structures de données hiérarchiques, telles que des menus de pages et de catégories, à partir d'un résultat de base de données plat , une fonction récursive peut être utilisée. Cette fonction prendra le tableau d'origine et l'organisera en tableaux imbriqués en fonction des relations parent-enfant.
La fonction :
function buildTree(array $elements, $parentId = 0) { $branch = array(); foreach ($elements as $element) { if ($element['parent_id'] == $parentId) { $children = buildTree($elements, $element['id']); if ($children) { $element['children'] = $children; } $branch[] = $element; } } return $branch; }
Comment ça marche :
Exemple d'utilisation :
Pour convertir le résultat de la base de données d'exemple en un tableau multidimensionnel à l'aide de cette fonction :
$tree = buildTree($rows);
Où $rows est le tableau d'origine de la base de données résultats.
Sortie :
Le tableau hiérarchique résultant ressemblera à la sortie souhaitée :
Array ( [0] => Array ( [id] => 1 [parent_id] => 0 [title] => Parent Page [children] => Array ( [0] => Array ( [id] => 2 [parent_id] => 1 [title] => Sub Page [children] => Array ( [0] => Array ( [id] => 3 [parent_id] => 1 [title] => Sub Sub Page ) ) ) ) [children] => Array ( [0] => Array ( [id] => 4 [parent_id] => 0 [title] => Another Parent Page [children] => Array ( ) ) ) ) )
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!