Maison >développement back-end >Problème PHP >Comment convertir un tableau php en tableau arborescent
Comment convertir un tableau PHP en tableau arborescent : 1. Comprendre la structure et le concept du tableau arborescent. Dans un tableau arborescent, chaque élément a un identifiant unique et un identifiant de l'élément parent 2. Préparez un exemple de tableau, créez un associatif normal ; tableau, qui contient certains éléments et leurs identifiants d'élément parent ; 3. Créez une fonction de conversion, qui créera une fonction pour convertir le tableau normal en un tableau arborescent ; 4. Appelez la fonction de conversion et affichez simplement le résultat.
L'environnement d'exploitation de ce tutoriel : système Windows 10, version php8.1.3, ordinateur DELL G3.
En PHP, un tableau est une structure de données très courante et pratique. Parfois, nous devons convertir des tableaux ordinaires en tableaux arborescents pour organiser et afficher les données plus facilement. Cet article explique comment convertir un tableau PHP en tableau arborescent.
1. Comprendre la structure et le concept du tableau arborescent
Dans un tableau arborescent, chaque élément a un identifiant unique et un identifiant de l'élément parent. L'identifiant de l'élément parent peut être mis en correspondance avec l'identifiant de l'élément enfant pour déterminer la relation hiérarchique entre les éléments. La structure d'un tableau arborescent est similaire à une structure arborescente, où l'élément supérieur est appelé élément racine et les éléments enfants peuvent être des nœuds feuilles ou d'autres nœuds de branche.
2. Préparez un exemple de tableau
À titre d'exemple, nous créons un tableau associatif normal qui contient certains éléments et leurs identifiants d'élément parent comme suit :
$data = array( array('id' => 1, 'name' => '项目1', 'parent_id' => 0), array('id' => 2, 'name' => '项目1.1', 'parent_id' => 1), array('id' => 3, 'name' => '项目1.2', 'parent_id' => 1), array('id' => 4, 'name' => '项目1.1.1', 'parent_id' => 2), array('id' => 5, 'name' => '项目2', 'parent_id' => 0), array('id' => 6, 'name' => '项目2.1', 'parent_id' => 5), array('id' => 7, 'name' => '项目2.2', 'parent_id' => 5), );
Le tableau ci-dessus contient certains éléments, où L'élément dont l'identifiant d'élément parent est 0 est l'élément racine.
3. Créer une fonction de conversion
Ensuite, nous allons créer une fonction pour convertir un tableau ordinaire en un tableau arborescent. Tout d’abord, nous devons définir une fonction récursive pour parcourir le tableau et construire l’arborescence. La fonction recevra deux paramètres : le tableau d'entrée et l'identifiant de l'élément parent.
function buildTree(array $data, $parentId = 0) { $tree = array(); foreach ($data as $row) { if ($row['parent_id'] == $parentId) { $children = buildTree($data, $row['id']); if ($children) { $row['children'] = $children; } $tree[] = $row; } } return $tree; }
Dans le code ci-dessus, nous créons d'abord un tableau vide $tree, puis utilisons une boucle foreach pour parcourir le tableau d'entrée $data. Si l'identifiant de l'élément parent de l'élément est le même que l'identifiant de l'élément parent transmis, un tableau enfant nommé $children est créé et la fonction buildTree() sera appelée de manière récursive pour ajouter les éléments enfants à $children. Si $children n'est pas un tableau vide, ajoutez-le à la clé "children" de la ligne actuelle. Enfin, ajoutez la ligne actuelle au tableau $tree.
4. Appelez la fonction de conversion et affichez le résultat
Ensuite, nous appelons simplement la fonction buildTree() et passons l'exemple de tableau en paramètre. Nous pouvons ensuite utiliser la fonction print_r() ou la fonction var_dump() pour imprimer les résultats afin de vérifier si la conversion a réussi.
$treeData = buildTree($data); print_r($treeData);
Exécutez le code ci-dessus et vous verrez le résultat du tableau arborescent :
Array ( [0] => Array ( [id] => 1 [name] => 项目1 [parent_id] => 0 [children] => Array ( [0] => Array ( [id] => 2 [name] => 项目1.1 [parent_id] => 1 [children] => Array ( [0] => Array ( [id] => 4 [name] => 项目1.1.1 [parent_id] => 2 ) ) ) [1] => Array ( [id] => 3 [name] => 项目1.2 [parent_id] => 1 ) ) ) [1] => Array ( [id] => 5 [name] => 项目2 [parent_id] => 0 [children] => Array ( [0] => Array ( [id] => 6 [name] => 项目2.1 [parent_id] => 5 ) [1] => Array ( [id] => 7 [name] => 项目2.2 [parent_id] => 5 ) ) ) )
Comme vous pouvez le voir, nous avons réussi à convertir le tableau ordinaire en un tableau arborescent.
Résumé
Cet article explique comment convertir un tableau PHP en tableau arborescent. En comprenant la structure et les concepts des tableaux arborescents, créez une fonction récursive pour construire l'arborescence et appelez la fonction pour transformer le tableau. De cette façon, vous pouvez facilement organiser et afficher vos 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!