ホームページ >バックエンド開発 >PHPチュートリアル >PHP で無制限の分類を実装する 3 つの方法 (概要)

PHP で無制限の分類を実装する 3 つの方法 (概要)

不言
不言転載
2018-10-15 14:28:012117ブラウズ

この記事では、PHP での無制限分類の 3 つの実装方法 (まとめ) を紹介します。一定の参考価値があります。困っている友人は参考にしてください。お役に立てれば幸いです。

無限分類とは、最上位の分類から始めて、各サブカテゴリを独自の複数のサブカテゴリに分割できることを意味し、常に分割することができます。これを無限分類と呼びます。

以下は、州、市、郡の Infinitus 分類の例です。データベースは図に示すとおりです:

# コード例は次のとおりです:


/**
 * @Description: 无限极分类一
 * @Author: Yang
 * @param $data  数据库数据
 * @param int $parent_id   父级ID
 * @return array
 */
function getTree1($data, $parent_id = 0)
{
    $tree = array();
    foreach ($data as $k => $v) {
        if ($v["parent_id"] == $parent_id) {
            unset($data[$k]);
            if (!empty($data)) {
                $children = getCategory($data, $v["id"]);
                if (!empty($children)) {
                    $v["_child"] = $children;
                }
            }
            $tree[] = $v;
        }
    }
    return $tree;
}


/**
 * @Description: 无限极分类二
 * @Author: Yang
 * @param $data   数据库数据
 * @param int $parent_id  父级ID
 * @param int $level  等级
 * @return array
 */
function getTree2($data, $parent_id = 0, $level = 0)
{
    static $tree = array();
    foreach ($data as $k => $v) {
        if ($v["parent_id"] == $parent_id) {
            $v["level"] = $level;
            $tree[] = $v;
            getTree($data, $v["id"], $level + 1);
        }
    }
    return $tree;
}

/**
 * @Description: 无限分类三:面包屑导航
 * @Author: Yang
 * @param $data  数据库数据
 * @param $id    分类ID
 * @return array
 */
function getCrumbsBar($data, $id) {
    static $tree = array();
    foreach ($data as $k => $v) {
        if ($v["id"] == $id) {
            getCrumbsBar($data, $v["parent_id"]);
            $tree[] = $v;
        }
    }
    return $tree;
}

以上がPHP で無制限の分類を実装する 3 つの方法 (概要)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はcnblogs.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。