Maison >développement back-end >tutoriel php >3 façons d'implémenter une classification illimitée en PHP (résumé)
Cet article vous propose trois méthodes d'implémentation (résumé) de classification illimitée en PHP. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
La classification infinie signifie qu'à partir du classement le plus élevé, chaque sous-catégorie peut être divisée en plusieurs sous-catégories qui lui sont propres, et elle peut être divisée à tout moment, ce qu'on appelle la classification infinie
;Voici les exemples de classification Infinitus des provinces, des villes et des comtés. La base de données est comme indiqué dans l'image :
L'exemple de code est le suivant :
/** * @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; }
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!