Teknologi klasifikasi yang dibangunkan dalam PHP menggunakan gelung foreach untuk melaksanakan fungsi klasifikasi
Apakah klasifikasi? Sama seperti mencipta folder baharu di bawah Windows, anda boleh mencipta folder
baharu di bawah folder baharu Ini akan diteruskan dalam gelung tak terhingga Perkara yang sama berlaku untuk klasifikasi. dan subkategori boleh menjadi
🎜>
boleh dibahagikan kepada subkategorinya. . . . . . Jadi bagaimanakah PHP melaksanakan klasifikasinya? Bagaimana untuk menyenaraikan pelbagai kategorinya satu persatu? Dalam bab ini kita akan memperkenalkan penggunaan gelung foreach untuk melaksanakan fungsi pengelasan. Mula-mula bina tatasusunan klasifikasi:<?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), ); ?>Terdapat 3 medan di sini, id pengisihan, nama nama klasifikasi dan pid pengelasan
Matlamatnya adalah untuk menukarnya kepada yang berikut Struktur:
<?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, ), ), ), ); ?>Proses pelaksanaan: Buat tatasusunan kosong
<?php $tree = array(); ?>
Langkah pertama ialah menambah semua id pengelasan Sebagai kunci tatasusunan, dan cipta unit kanak-kanak
<?php foreach($categories as $category){ $tree[$category['id']] = $category; $tree[$category['id']]['children'] = array(); } ?>
Dalam langkah kedua, gunakan rujukan untuk menambah setiap kategori pada tatasusunan anak kelas induk, supaya struktur pokok boleh dibentuk dalam satu traversal.
<?php foreach ($tree as $key=>$value) { if ($value['pid'] != 0) { $tree[$value['pid']]['children'][] = $tree[$key]; } } ?>
Akhirnya gunakan print_r(); untuk mencetaknya
<?php print_r($tree); ?>
Kelebihan: Hubungannya jelas, dan mudah untuk mengubah suai hubungan atasan-bawahan. Kelemahan: Menggunakan PHP untuk pemprosesan, jika bilangan kategori banyak, kecekapan juga akan berkurangan. <🎜>