Klasifikasi Infinite (Bahagian 1)
Pengkelasan Tak Terhingga
Apakah Pengelasan Tak Terhingga:
Apa itu Pengelasan Tak Terhingga:
boleh dibahagikan kepada kelas, kemudiannya boleh dikelaskan kepada satu kelas jadilah Bahagikan kepada subkategori lain dan teruskan ini selama-lamanya, seolah-olah Windows boleh mencipta folder baharu, dan kemudian mencipta folder dalam folder ini. public function index(){
$cate=D('cate');
$cateres=$cate->catetree();
$this->assign('cateres',$cateres);
$this->display();
}
catetree() ditulis dalam lapisan model klasifikasi seperti berikut
<?php namespace Admin\Model; use Think\Model; class CateModel extends Model { protected $_validate = array( array('catename','require','管理员名称不得为空!',1), ); public function catetree(){ $data=$this->order('id desc')->select(); return $this->resort($data); } public function resort($data,$pid=0,$level=0){ static $arr=array(); foreach ($data as $k => $v) { if ($v['pid']==$pid) { $v['level']=$level; $arr[]=$v; $this->resort($data,$v['id'],$level+1); } } return $arr; } }Mari kita terangkan cara melaksanakannya secara bergilir.
kaedah catetree
Dapatkan data, $ini bermakna memanggil dirinya sendiri untuk membuat pertanyaan dan menggunakan id untuk mengisih. return mengembalikan hasil pertanyaan.
kaedah resort
$data: Data diperolehi
$pid=0: Bermula dari kategori teratas 0
$level=0 klasifikasi kosong tatasusunan dengan Untuk menyimpan data, foreach digunakan untuk melintasi Jika $v['pid']==$pid bermaksud id peringkat atas, maka $v['level']=$level juga merupakan kategori peringkat atas. data yang ditanya disimpan dalam tatasusunan Seterusnya, teruskan memanggil dirinya $this->resort($data,$v['id'],$level+1 Di sini $data adalah sama dengan $data $v['); id'] adalah sama dengan $pid, $level+1 Mewakili $level meningkat sebanyak 1 setiap kali. Keputusan yang ditemui adalah seperti berikut,
Kami terus menambah beberapa untuk menyemak
🎜🎜🎜🎜Ini adalah prinsip mudah kami yang tidak terhingga. 🎜🎜