ホームページ  >  記事  >  バックエンド開発  >  PHPでのInfinitus分類

PHPでのInfinitus分類

不言
不言オリジナル
2018-05-31 17:34:351809ブラウズ

この記事では、主に php での Infinitus 分類を紹介します。これを必要な友達に共有します。

まず、Infinitus 分類に対応するテーブルの構造です。
| cate_id    | cate_name|  parentid(默认0)|
| --------   | -----:   | :----: |
| 1          | 键盘     |   0    |
| 2          | 机械键盘  |   1    |
| 3          | cherry键盘|  2    |

これは、チェリーのparentidの値が、Infinitus分類の中核である上位レベルのcate_idに等しいことがわかります

2。無限分類関数は、データベース

内のデータを並べ替えることです

。コントローラー:

public function index(){
    $cate = D('category')->catetree();    
    $this->assign('cate',$cate);        
    $this->display();
    }

ここで、$cate は catetree() メソッドを呼び出します。次に、以下の対応するモデルのコードが

Model下的代码:public function catetree(){
    $data = $this->select();    
    return $this->resort($data);
   }

まず、対応するカテゴリ テーブル内のすべてのデータをクエリし、新しいメソッドを返します

public function resort($data,$parentid=0,$level=0){
    static $ret = array();    foreach ($data as $key => $v) {        
    if ($v['parentid']==$parentid) {        
    $v['level']=$level;        
    $ret[]=$v;       
    $this->resort($data,$v['cate_id'],$level+1);
        }
    }    return $ret ;
}

最初に静的配列を生成します。そして を入れます。 catetree() メソッドで渡された $data を走査し、最上位のデータを見つけることが判定条件となります。まずトップレベルのデータを静的配列に保存し、次にそれ自体を呼び出して、トップレベルの列の ID をパラメータとして渡します。

これで $parentid=$v['cate_id'] catetree()方法传过来的$data进行遍历,判断条件就是为了找到顶级那条数据。先把顶级那条数据保存到静态数组里面,然后在调用本身,并且把顶级栏目的id做为参数传出去。
这样一来$parentid=$v['cate_id'] 最終的な無線分類機能が完成しました!

関連する推奨事項:


phpの物理ロールバック

PHPのパスワード暗号化のソリューションの概要

以上がPHPでのInfinitus分類の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。