이 기사에서는 레벨별로 카테고리를 출력하는 Thinkphp 재귀 처리의 예를 주로 공유합니다.
1. 일반적으로 카테고리는 데이터베이스에 저장되며 카테고리 간의 관계는 parent_id로 식별됩니다. 개발 중에는 아래와 같이 분류 수준에 따라 분류를 표시해야 하는 경우가 있습니다.
재귀적 방법을 사용하며, 소스 코드는 다음과 같습니다.
/** * * @param array $list 为一个二维数组,存放着所有的分类,包含的字段为(分类id,分类名,parent_id) * @param number $parent_id * @param number $level * @return Ambigous <multitype:, number> */ function find_level($list,$parent_id=0,$level=1){ foreach($list as $l){ if($l['parent_id']==$parent_id){ $l['level']=$level; $arr[]=$l; $child=$this->find_level($list,$l['cat_id'],$level+1); if(is_array($child)){ $arr=array_merge($arr,$child); } } } return $arr; }
사용시 , find_level($list)를 사용하거나 실제 상황에 따라 $this->find_level($list)가 그렇게 합니다
$list=M('category')->field('cat_id,cat_name,parent_id')->select(); $list=$this->find_level($list); $this->list=$list; $this->display();
전면 파일 표시 코드
<table> <foreach name="list" item="vo"> <tr> <td> <for start="1" end="$vo['level']"> </for> {$vo.cat_name}<br/> </td> </tr> </foreach> </table>
여기에 사용된 구문은 Thinkphp
입니다.위 내용은 인스턴스를 레벨별로 분류 및 출력의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!