一部の複雑なシステムでは、システムの柔軟性を高めるために情報列を無限レベルで分類する必要があります。では、PHP はどのようにして無限分類を実現するのでしょうか?この記事では、再帰的アルゴリズムと mysql データ テーブルを組み合わせて無限分類を実現します。
再帰とは、簡単に言うと、プログラム コードを繰り返し呼び出すことです。コードがカスタム関数に書き込まれると、パラメーターなどの変数が保存され、特定の条件に達するまで関数が繰り返し呼び出されてから、関数が実行されて戻ります。対応するデータ。
MySQL
まず、商品分類情報を記録するデータテーブルクラスを用意します。テーブルには 3 つのフィールドがあります。id: カテゴリ番号、主キーは自動的に増加します。title: カテゴリ名、pid: それが属する上位カテゴリの ID。
クラステーブル構造:
データを挿入した後、図に示すように:
PHP
さまざまなニーズに応じて、2 つのカスタム関数を異なる形式で提供します。1 つは文字列を返し、もう 1 つは配列を返します。どちらの関数も再帰メソッドを使用します。まず、文字列形式を返す関数を見てみましょう:
上記の関数 get_str() は、再帰によって下位レベルのカテゴリを継続的にクエリし、最終的にはプロジェクトのニーズに応じて str を変更し、最終的に無限の階層リストを生成します。
リーリー
次に、配列形式を返す関数を見てみましょう。また、再帰を使用する必要があります。
リーリー
関数 get_array() は配列を返しますが、これは私たちが期待しているとおりなので、この方法で配列に対して任意の操作を実行できるように、著者は get_array() を使用することを推奨しています。 json形式のデータに変換してフロントエンドページに渡すと、フロントエンドページはjsonデータを解析することで柔軟に分類情報を表示することができます。たとえば、ツリー構造のカテゴリ リスト、ドロップダウン カテゴリ リストなどです。
リーリー
出力効果は次のとおりです:
json 形式でデータを出力したい場合は、次を使用できます:
リーリー
上記の方法では、PHP を使用して再帰的無限分類を実現する方法を説明します。この記事が学習に役立つことを願っています。
http://www.bkjia.com/PHPjc/1063906.html