Maison >développement back-end >Problème PHP >Comment convertir un tableau php en tableau arborescent

Comment convertir un tableau php en tableau arborescent

zbt
zbtoriginal
2023-08-04 17:30:481363parcourir

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.

Comment convertir un tableau php en tableau arborescent

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!

Déclaration:
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