ホームページ バックエンド開発 PHPチュートリアル CMSPRESSは無制限の分類を実現(コードあり)

CMSPRESSは無制限の分類を実現(コードあり)

May 17, 2018 am 11:59 AM
コード 分類

今回は、無限分類を実現するための CMSPRESS について説明します (コード付き)。CMSPRESS が無限分類を実装するための 注意事項 は何ですか? ここで実際のケースを見てみましょう。

無限分類 使いやすく、非常に効率的なコアコードは 10 行未満です さらに、この分類の欠点と、より効率的でシンプルな無限分類方法を見つけたいです^_^

コアコードは次のとおりです

class Tool {
  static public $treeList = array(); //存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空
  /**
   * 无限级分类
   * @access public 
   * @param Array $data   //数据库里获取的结果集 
   * @param Int $pid       
   * @param Int $count    //第几级分类
   * @return Array $treeList  
   */
  static public function tree(&$data,$pid = 0,$count = 1) {
    foreach ($data as $key => $value){
      if($value['Pid']==$pid){
        $value['Count'] = $count;
        self::$treeList []=$value;
        unset($data[$key]);
        self::tree($data,$value['Id'],$count+1);
      } 
    }
    return self::$treeList ;
  }  
}
ログイン後にコピー

$treeList[] Save 並べ替えの結果は、基本的に、並べ替えて保存した後、使用されなくなったので unset($data[$key]) できます

&$data を使用します。 unset($data[$key]); と組み合わせたアドレスによるパラメーターの受け渡しにより、ループの数が減り、効率が数倍向上します

ただし、Pid は ASC でソートする必要があります。そうしないと、表示が不完全になります

$value['Count'] = $count; 現在のレベルはテンプレート内のレベルごとに処理されます ツリー構造を生成します

ソート前後のデータ構造は次のとおりです

table

ソート前のデータ構造
id pid
1 0
2 0
3 1
4 3

ソート後のデータ構造

id pid count

1 0 1
3 1 2
4 3 3
2 0 1

//默认列表
  public function index() {  
    $menu = M('Menu');
    $list = $menu->order('Pid ASC,Morder DESC,Id ASC')->select();
    $this->assign('List',Tool::tree($list));  
         $this->display();
  }
ログイン後にコピー

コントローラーで呼び出します

<td style="
text-indent
:<{$vo[&#39;Count&#39;]*20}>px;"><neq name="vo.Count" value="1">| -- </neq><{$vo.Name}></td>
ログイン後にコピー

テンプレートで使用します 通常の出力で必要なものを生成できます ツリー構造のフィールドは上記のように変更されます

テスト後、項目が 3,000 個ある場合、0.5 秒かかります1,000個の場合は約0.02秒かかりますが、3,000個を超えると効率が大幅に低下します。これ以上の詳細なテストはまだ行われていません

。この記事の事例を読んだ後は、PHP 中国語 Web サイトの他の関連記事にも注目してください。

推奨読書:

PHPの遅延静的バインディングの詳細な説明

thinkPHPフレームワークの自動入力原理と使用法の詳細な説明

以上がCMSPRESSは無制限の分類を実現(コードあり)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

win7ドライバーコード28を解決する方法 win7ドライバーコード28を解決する方法 Dec 30, 2023 pm 11:55 PM

一部のユーザーは、デバイスのインストール時にエラー コード 28 を表示するエラーに遭遇しました。実際、これは主にドライバーが原因です。Win7 ドライバー コード 28 の問題を解決するだけで済みます。何をすべきかを見てみましょう。それ。 win7 ドライバー コード 28 で何をするか: まず、画面の左下隅にあるスタート メニューをクリックする必要があります。次に、ポップアップメニューで「コントロールパネル」オプションを見つけてクリックします。このオプションは通常、メニューの下部またはその近くにあります。クリックすると、システムは自動的にコントロール パネル インターフェイスを開きます。コントロールパネルでは、システムの各種設定や管理操作を行うことができます。これはノスタルジックな掃除レベルの最初のステップです。お役に立てば幸いです。次に、続行してシステムに入り、

ブルースクリーンコード0x0000001が発生した場合の対処方法 ブルースクリーンコード0x0000001が発生した場合の対処方法 Feb 23, 2024 am 08:09 AM

ブルー スクリーン コード 0x0000001 の対処法。ブルー スクリーン エラーは、コンピューター システムまたはハードウェアに問題がある場合の警告メカニズムです。コード 0x0000001 は、通常、ハードウェアまたはドライバーの障害を示します。ユーザーは、コンピュータの使用中に突然ブルー スクリーン エラーに遭遇すると、パニックになり途方に暮れるかもしれません。幸いなことに、ほとんどのブルー スクリーン エラーは、いくつかの簡単な手順でトラブルシューティングして対処できます。この記事では、ブルー スクリーン エラー コード 0x0000001 を解決するいくつかの方法を読者に紹介します。まず、ブルー スクリーン エラーが発生した場合は、再起動を試みることができます。

コンピューターが頻繁にブルー スクリーンになり、コードが毎回異なります コンピューターが頻繁にブルー スクリーンになり、コードが毎回異なります Jan 06, 2024 pm 10:53 PM

win10 システムは非常に優れた高インテリジェンス システムであり、その強力なインテリジェンスはユーザーに最高のユーザー エクスペリエンスをもたらすことができ、通常の状況では、ユーザーの win10 システム コンピューターに問題はありません。しかし、優れたコンピューターにはさまざまな障害が発生するのは避けられず、最近、友人が win10 システムで頻繁にブルー スクリーンが発生したと報告しています。今日、エディターは、Windows 10 コンピューターで頻繁にブルー スクリーンを引き起こすさまざまなコードに対する解決策を提供します。毎回異なるコードが表示される頻繁なコンピューターのブルー スクリーンの解決策: さまざまな障害コードの原因と解決策の提案 1. 0×000000116 障害の原因: グラフィック カード ドライバーに互換性がないことが考えられます。解決策: 元の製造元のドライバーを置き換えることをお勧めします。 2、

JSPコメントの使用法と分類を分析する JSPコメントの使用法と分類を分析する Feb 01, 2024 am 08:01 AM

JSP コメントの分類と使用状況の分析 JSP コメントは 2 つのタイプに分類されます。 単一行コメント: で終わる、単一行のコードのみコメントできます。複数行のコメント: /* で始まり */ で終わると、複数行のコードにコメントを付けることができます。単一行のコメントの例 複数行のコメントの例/**これは複数行のコメントです*コードの複数行にコメントできます*/JSP コメントの使用法 JSP コードを読みやすくするために JSP コメントを使用できます。

あらゆるデバイス上の GE ユニバーサル リモート コード プログラム あらゆるデバイス上の GE ユニバーサル リモート コード プログラム Mar 02, 2024 pm 01:58 PM

デバイスをリモートでプログラムする必要がある場合は、この記事が役に立ちます。あらゆるデバイスをプログラミングするためのトップ GE ユニバーサル リモート コードを共有します。 GE リモコンとは何ですか? GEUniversalRemote は、スマート TV、LG、Vizio、Sony、Blu-ray、DVD、DVR、Roku、AppleTV、ストリーミング メディア プレーヤーなどの複数のデバイスを制御するために使用できるリモコンです。 GEUniversal リモコンには、さまざまな機能を備えたさまざまなモデルがあります。 GEUniversalRemote は最大 4 台のデバイスを制御できます。あらゆるデバイスでプログラムできるトップのユニバーサル リモート コード GE リモコンには、さまざまなデバイスで動作できるようにするコードのセットが付属しています。してもいいです

コード0xc000007bエラーを解決する コード0xc000007bエラーを解決する Feb 18, 2024 pm 07:34 PM

終了コード 0xc000007b コンピューターを使用しているときに、さまざまな問題やエラー コードが発生することがあります。その中でも最も厄介なのが終了コード、特に終了コード0xc000007bです。このコードは、アプリケーションが正常に起動できず、ユーザーに迷惑がかかっていることを示しています。まずは終了コード0xc000007bの意味を理解しましょう。このコードは、32 ビット アプリケーションを 64 ビット オペレーティング システムで実行しようとしたときに通常発生する Windows オペレーティング システムのエラー コードです。それはそうすべきだという意味です

ブルー スクリーン コード 0x000000d1 は何を表しますか? ブルー スクリーン コード 0x000000d1 は何を表しますか? Feb 18, 2024 pm 01:35 PM

0x000000d1 ブルー スクリーン コードは何を意味しますか? 近年、コンピューターの普及とインターネットの急速な発展に伴い、オペレーティング システムの安定性とセキュリティの問題がますます顕著になってきています。よくある問題はブルー スクリーン エラーで、コード 0x000000d1 もその 1 つです。ブルー スクリーン エラー、または「死のブルー スクリーン」は、コンピューターに重大なシステム障害が発生したときに発生する状態です。システムがエラーから回復できない場合、Windows オペレーティング システムは、画面上にエラー コードを含むブルー スクリーンを表示します。これらのエラーコード

0x0000007fブルースクリーンコードの原因と解決策を詳しく解説 0x0000007fブルースクリーンコードの原因と解決策を詳しく解説 Dec 25, 2023 pm 02:19 PM

システムを使用しているときによく遭遇するブルースクリーンの問題ですが、エラーコードに応じて、さまざまな原因と解決策が異なります。たとえば、stop: 0x0000007f の問題が発生した場合、ハードウェアまたはソフトウェアのエラーである可能性があるため、エディタに従って解決策を見つけてみましょう。 0x000000c5 ブルー スクリーン コードの理由: 回答: メモリ、CPU、グラフィック カードが突然オーバークロックされているか、ソフトウェアが正しく実行されていません。解決策 1: 1. 起動時に F8 キーを押し続け、セーフ モードを選択し、Enter キーを押してに入ります。 2. セーフ モードに入ったら、win+r を押して実行ウィンドウを開き、「cmd」と入力して Enter を押します。 3. コマンド プロンプト ウィンドウで「chkdsk /f /r」と入力し、Enter キーを押して、y キーを押します。 4.

See all articles