インスタンスをレベルごとに分類して出力する

小云云
リリース: 2023-03-21 15:38:01
オリジナル
1189 人が閲覧しました

この記事では主に、レベル別にカテゴリを出力する 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 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート