亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

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?:

QQ圖片20161102150838.png

<?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.
Formation continue
||
<?php header("content-type:text/html;charset=utf-8"); //利用兩個(gè)foreach來實(shí)現(xiàn)分類功能 /* 1. 構(gòu)建字段 字段名 字段類型 備注 默認(rèn)值 id int 主鍵 auto-increment name varchar 分類名稱 pid int 父類id 0 */ //先來構(gòu)建一個(gè)原始數(shù)組 $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), ); 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, ), ), ), ); //處理過程 $tree = array(); //第一步,將所有的分類id作為數(shù)組key,并創(chuàng)建children單元 foreach($categories as $category){ $tree[$category['id']] = $category; $tree[$category['id']]['children'] = array(); } //第二步,利用引用,將每個(gè)分類添加到父類children數(shù)組中,這樣一次遍歷即可形成樹形結(jié)構(gòu)。 foreach ($tree as $key=>$value) { if ($value['pid'] != 0) { $tree[$value['pid']]['children'][] = $tree[$key]; } } print_r($tree); ?>
soumettreRéinitialiser le code