Klasifikasi Infinite (Bahagian 1)

Pengkelasan Tak Terhingga

2931721519-561aa0fe8bba4_articlex.png

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();
    }

Mula-mula tulis templat dalam pengawal indeks, dan $cateres memanggil kaedah catetree(). Kaedah


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

QQ截图20170623144118.png$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,

QQ截图20170623144430.png Kami terus menambah beberapa untuk menyemak

🎜🎜🎜🎜Ini adalah prinsip mudah kami yang tidak terhingga. 🎜🎜
Meneruskan pembelajaran
||
<?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; } }
  • Cadangan kursus
  • Muat turun perisian kursus