이 글은 주로 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!