Heim > Backend-Entwicklung > PHP-Tutorial > Instanzen nach Ebene klassifizieren und ausgeben

Instanzen nach Ebene klassifizieren und ausgeben

小云云
Freigeben: 2023-03-21 15:38:01
Original
1196 Leute haben es durchsucht

Dieser Artikel zeigt Ihnen hauptsächlich Beispiele für die rekursive Verarbeitung von Thinkphp, die Kategorien nach Ebene ausgibt. Ich hoffe, dass er Ihnen helfen kann.

1. Im Allgemeinen werden Kategorien in der Datenbank gespeichert und die Beziehung zwischen Kategorien wird durch parent_id identifiziert. In der Entwicklung ist es manchmal erforderlich, Kategorien entsprechend der Klassifizierungsebene anzuzeigen, wie unten gezeigt:

Verwenden Sie die rekursive Methode. Der Quellcode lautet wie folgt:

  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;  
      }
    Nach dem Login kopieren

Verwenden Sie bei der Verwendung einfach find_level($list) oder $this->find_level($list) entsprechend der tatsächlichen Situation

$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();
Nach dem Login kopieren


Anzeigecode für Vordergrunddateien

  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>
    Nach dem Login kopieren

Die hier verwendete Syntax ist Thinkphp

Das obige ist der detaillierte Inhalt vonInstanzen nach Ebene klassifizieren und ausgeben. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage