인스턴스를 레벨별로 분류 및 출력

小云云
풀어 주다: 2023-03-21 15:38:01
원래의
1174명이 탐색했습니다.

이 기사에서는 레벨별로 카테고리를 출력하는 Thinkphp 재귀 처리의 예를 주로 공유합니다.

1. 일반적으로 카테고리는 데이터베이스에 저장되며 카테고리 간의 관계는 parent_id로 식별됩니다. 개발 중에는 아래와 같이 분류 수준에 따라 분류를 표시해야 하는 경우가 있습니다.

재귀적 방법을 사용하며, 소스 코드는 다음과 같습니다.

  1. /** 
       *  
       * @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[&#39;parent_id&#39;]==$parent_id){  
                  $l[&#39;level&#39;]=$level;  
                  $arr[]=$l;  
                  $child=$this->find_level($list,$l[&#39;cat_id&#39;],$level+1);  
                  if(is_array($child)){  
                      $arr=array_merge($arr,$child);  
                  }  
              }  
          }  
          return $arr;  
      }
    로그인 후 복사

사용시 , find_level($list)를 사용하거나 실제 상황에 따라 $this->find_level($list)가 그렇게 합니다

$list=M(&#39;category&#39;)->field(&#39;cat_id,cat_name,parent_id&#39;)->select();  
$list=$this->find_level($list);  
$this->list=$list;  
$this->display();
로그인 후 복사


전면 파일 표시 코드

  1. <table>  
    <foreach name="list" item="vo">  
        <tr>  
            <td>  
                <for start="1" end="$vo[&#39;level&#39;]">  
                          
                </for>  
                {$vo.cat_name}<br/>  
            </td>  
        </tr>  
    </foreach>  
    </table>
    로그인 후 복사

여기에 사용된 구문은 Thinkphp

입니다.

위 내용은 인스턴스를 레벨별로 분류 및 출력의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!