La technologie de classification développée en PHP utilise la boucle foreach pour implémenter la fonction de classification
Qu'est-ce que la classification ? Tout comme la création d'un nouveau dossier sous Windows, vous pouvez créer un nouveau dossier
sous le nouveau dossier. Cela continuera dans une boucle infinie. Il en va de même pour la classification. La catégorie parent peut être divisée en sous-catégories. et les sous-catégories peuvent être
🎜>
peuvent être divisées en ses sous-catégories. . . . . . Alors, comment PHP implémente-t-il sa classification ? Comment lister ses différentes catégories une à une ? Dans ce chapitre, nous présenterons l'utilisation de la boucle foreach pour implémenter la fonction de classification. Construisez d'abord un tableau de classification :<?php $categories = array( array('id'=>1,'name'=>'电脑','pid'=>0), array('id'=>2,'name'=>'手机','pid'=>0), array('id'=>3,'name'=>'笔记本','pid'=>1), array('id'=>4,'name'=>'台式机','pid'=>1), array('id'=>5,'name'=>'智能机','pid'=>2), array('id'=>6,'name'=>'功能机','pid'=>2), array('id'=>7,'name'=>'超级本','pid'=>3), array('id'=>8,'name'=>'游戏本','pid'=>3), ); ?>Il y a 3 champs ici, l'identifiant de tri, le nom du nom de classification et le pid de classification
Le but est de le convertir en ce qui suit Structure :
<?php array( //1对应$categories中的id ,方便直接读取 1 => array( 'id'=>1, 'name'=>'电脑', 'pid'=>0, 'children' =>array( array( 'id'=>3, 'name'=>'笔记本', 'pid'=>1, 'children'=>array( 'id'=>7, 'name'=> '超极本', 'pid'=>'3' ), array( 'id'=>8, 'name'=> '游戏本', 'pid'=>'3' ) , ), array( 'id'=>4, 'name'=>'台式机', 'pid'=>1, ), ), ), 2 => array( 'id'=>2, 'name'=>'手机', 'pid'=>0, 'children' =>array( array( 'id'=>5, 'name'=>'智能机', 'pid'=>2, ), array( 'id'=>6, 'name'=>'功能机', 'pid'=>2, ), ), ), ); ?>Processus de mise en œuvre : Créer un tableau vide
<?php $tree = array(); ?>
La première étape consiste à ajouter tous les identifiants de classification En tant que clé du tableau, créez l'unité enfants
<?php foreach($categories as $category){ $tree[$category['id']] = $category; $tree[$category['id']]['children'] = array(); } ?>
Dans la deuxième étape, utilisez des références pour ajouter chaque catégorie au tableau enfants de la classe parent, afin qu'une structure arborescente puisse être formée en un seul parcours.
<?php foreach ($tree as $key=>$value) { if ($value['pid'] != 0) { $tree[$value['pid']]['children'][] = $tree[$key]; } } ?>
Enfin, utilisez print_r(); pour l'imprimer
<?php print_r($tree); ?>
Avantages : La relation est claire, et il est simple de modifier la relation supérieur-subordonné. Inconvénients : en utilisant PHP pour le traitement, si le nombre de catégories est énorme, l'efficacité sera également réduite. <🎜>