ホームページ >バックエンド開発 >PHPチュートリアル >PHP を使用すると、無制限のクエリを簡単に実行できます

PHP を使用すると、無制限のクエリを簡単に実行できます

PHPz
PHPzオリジナル
2023-04-10 09:35:03898ブラウズ

PHP は広く使用されているオープンソースのスクリプト言語であり、Web サイト開発の非常に重要な部分です。多くの Web サイト開発では、無制限の分類構造が非常に一般的な要件です。この記事では、PHPを使って無制限のクエリを簡単に実行する方法を紹介します。

1. 無限分類とは何ですか?

無限分類は、Web サイトで非常に一般的なツリー構造の分類方法です。たとえば、製品分類 Web サイトで製品を分類する必要がある場合、無制限に分類を使用できます。大カテゴリ、小カテゴリ、サブカテゴリなど、無制限に商品を並べることができます。

2. 無限分類を実装するにはどうすればよいですか?

1. 再帰的メソッドを使用して実現します

PHP では、再帰的メソッドを使用して無限分類クエリを実装できます。具体的な実装方法は次のとおりです。

<?php

function getSubCates($cateList, $parentId = 0, $level = 0) {
    $subs = array();     // 子分类列表
    foreach ($cateList as $cate) {
        if ($cate[&#39;parent_id&#39;] == $parentId) {
            $cate[&#39;level&#39;] = $level;    // 设置当前分类的级别
            $subs[] = $cate;
            $subs = array_merge($subs, getSubCates($cateList, $cate[&#39;id&#39;], $level + 1));
        }
    }
    return $subs;
}

上記のコードでは、カテゴリのサブカテゴリがクエリされ、次に各サブカテゴリのサブカテゴリが再帰的にクエリされ、すべてのカテゴリが階層的に配列で返されます。

2. スタック メソッドを使用して実現します

再帰的メソッドの使用に加えて、スタック メソッドを使用して無限分類を実現することもできます。スタック モードのコードは次のとおりです。

<?php

function getSubCates($cateList, $rootId = 0) {
    $stack = array($rootId);
    $subs = array();
    while (!empty($stack)) {
        $parentId = array_pop($stack);
        foreach ($cateList as $key => $row) {
            if ($row['parent_id'] == $parentId) {
                $subs[] = $row;
                array_push($stack, $row['id']);
                unset($cateList[$key]);
            }
        }
    }
    return $subs;
}

上記のコードはスタック データ構造を使用し、ルート ノードをスタックに配置し、スタックから親ノードをループアウトしてその子ノードを見つけます。同時に、スタックが空になるまで、子ノードをスタックにプッシュします。

3. 無限分類を使用するにはどうすればよいですか?

無制限の分類を使用すると、開発が大幅に促進されます。カテゴリをきちんとしたツリー構造に配置できるため、ユーザーは簡単に参照してターゲットを見つけることができます。以下は一般的に使用される例です:

<?php

$cateList = array(
    array(&#39;id&#39; => 1, 'name' => '电子产品', 'parent_id' => 0),
    array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    array('id' => 4, 'name' => '三星', 'parent_id' => 2),
    array('id' => 5, 'name' => '华为', 'parent_id' => 2),
    array('id' => 6, 'name' => 'ThinkPad', 'parent_id' => 3),
    array('id' => 7, 'name' => 'Apple', 'parent_id' => 3),
);

$subCates = getSubCates($cateList);
foreach ($subCates as $cate) {
    echo str_repeat('  ', $cate['level']) . $cate['name'];
    echo '<br/>';
}

上記のコードでは、最初にカテゴリ リスト $cateList を定義し、次に getSubCates($cateList) メソッドを呼び出してすべてのカテゴリを取得し、最後にループを使用して出力します。各カテゴリ名とレベルの情報。

4. 概要

無限分類は重要な分類方法であり、非常に実用的です。 PHP では、再帰またはスタックを使用して、無制限のクエリを簡単に実装できます。無制限の分類により、ツリー構造を迅速に構築し、ユーザーのクエリと閲覧を容易にすることができます。上記の紹介が、読者が PHP で無制限のクエリを実装する方法をよりよく理解するのに役立つことを願っています。

以上がPHP を使用すると、無制限のクエリを簡単に実行できますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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