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'=>'手機(jī)','pid'=>0), array('id'=>3,'name'=>'筆記本','pid'=>1), array('id'=>4,'name'=>'臺(tái)式機(jī)','pid'=>1), array('id'=>5,'name'=>'智能機(jī)','pid'=>2), array('id'=>6,'name'=>'功能機(jī)','pid'=>2), array('id'=>7,'name'=>'超級(jí)本','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對(duì)應(yīng)$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'=>'臺(tái)式機(jī)', 'pid'=>1, ), ), ), 2 => array( 'id'=>2, 'name'=>'手機(jī)', 'pid'=>0, 'children' =>array( array( 'id'=>5, 'name'=>'智能機(jī)', 'pid'=>2, ), array( 'id'=>6, 'name'=>'功能機(jī)', '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. ?>