>  기사  >  백엔드 개발  >  PHP의 인피니투스 분류

PHP의 인피니투스 분류

不言
不言원래의
2018-05-31 17:34:351849검색

이 글은 주로 PHP의 Infinitus 분류를 소개하는데, 이는 특정 참조 가치가 있습니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들이 참고할 수 있습니다

1. 먼저 Infinitus 분류에 해당하는 테이블의 구조

| cate_id    | cate_name|  parentid(默认0)|
| --------   | -----:   | :----: |
| 1          | 键盘     |   0    |
| 2          | 机械键盘  |   1    |
| 3          | cherry键盘|  2    |

이는 Cherry의 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 ;
}

먼저 정적 배열을 생성한 다음 puts catetree() 메소드로 전달된 $data를 순회하며, 판단 조건은 데이터의 최상위 부분을 찾는 것입니다. 먼저 최상위 데이터를 정적 배열에 저장한 다음 자신을 호출하고 최상위 열의 ID를 매개변수로 전달합니다. catetree()方法传过来的$data进行遍历,判断条件就是为了找到顶级那条数据。先把顶级那条数据保存到静态数组里面,然后在调用本身,并且把顶级栏目的id做为参数传出去。
这样一来$parentid=$v['cate_id']이렇게 $parentid=$v['cate_id']
최종 무선 분류 기능이 완성되었습니다!

관련 권장 사항:

PHP의 물리적 롤백

PHP의 비밀번호 암호화 솔루션 요약

위 내용은 PHP의 인피니투스 분류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.