• PHP递归实现无限级分类


     什么是无限级分类?

    无限级分类是一种对商品或信息进行分类的方式,在这种分类方式中,每个分类都可以再次细分出更多的子分类,形成无限的级别

    应用场景:

    一个电商网站的分类可以是:服装、鞋类、家居用品等,而服装分类下又可以进一步划分成男装、女装、童装等子分类,男装分类下又可以划分成衬衫、T恤、外套等子分类,这样就形成了多层次的无限级分类

    在PHP中实现无限级分类可以使用递归的方法来实现。下面是一个简单的示例: 

     

    1. // 模拟分类数据
    2. $categories = array(
    3. array('id' => 1, 'name' => '电子产品', 'parent_id' => 0),
    4. array('id' => 2, 'name' => '手机', 'parent_id' => 1),
    5. array('id' => 3, 'name' => '笔记本电脑', 'parent_id' => 1),
    6. array('id' => 4, 'name' => '家用电器', 'parent_id' => 0),
    7. array('id' => 5, 'name' => '电视', 'parent_id' => 4),
    8. array('id' => 6, 'name' => '冰箱', 'parent_id' => 4),
    9. array('id' => 7, 'name' => '空调', 'parent_id' => 4),
    10. array('id' => 8, 'name' => '服饰', 'parent_id' => 0),
    11. array('id' => 9, 'name' => '男装', 'parent_id' => 8),
    12. array('id' => 10, 'name' => '女装', 'parent_id' => 8),
    13. array('id' => 11, 'name' => '鞋类', 'parent_id' => 0),
    14. array('id' => 12, 'name' => '男鞋', 'parent_id' => 11),
    15. array('id' => 13, 'name' => '女鞋', 'parent_id' => 11),
    16. array('id' => 14, 'name' => '数码产品', 'parent_id' => 1),
    17. array('id' => 15, 'name' => '相机', 'parent_id' => 14),
    18. array('id' => 16, 'name' => '摄像机', 'parent_id' => 14),
    19. array('id' => 17, 'name' => '办公用品', 'parent_id' => 0),
    20. array('id' => 18, 'name' => '文具', 'parent_id' => 17),
    21. array('id' => 19, 'name' => '办公设备', 'parent_id' => 17),
    22. array('id' => 20, 'name' => '电脑配件', 'parent_id' => 1),
    23. array('id' => 21, 'name' => '显示器', 'parent_id' => 20),
    24. array('id' => 22, 'name' => '内存条', 'parent_id' => 20),
    25. array('id' => 23, 'name' => '游戏机', 'parent_id' => 1),
    26. array('id' => 24, 'name' => 'PS5', 'parent_id' => 23),
    27. array('id' => 25, 'name' => 'Switch', 'parent_id' => 23),
    28. );
    29. // 递归处理分类数据
    30. function buildTree($categories, $parent_id = 0) {
    31. $tree = array();
    32. foreach ($categories as $category) {
    33. if ($category['parent_id'] == $parent_id) {
    34. $children = buildTree($categories, $category['id']);
    35. if ($children) {
    36. $category['children'] = $children;
    37. }
    38. $tree[] = $category;
    39. }
    40. }
    41. return $tree;
    42. }
    43. // 构建树形结构
    44. $tree = buildTree($categories);
    45. // 显示分类数据
    46. function showTree($tree, $indent = 0) {
    47. foreach ($tree as $category) {
    48. echo str_repeat("--", $indent) . $category['name'] . "
      "
      ;
    49. if (isset($category['children'])) {
    50. showTree($category['children'], $indent + 1);
    51. }
    52. }
    53. }
    54. // 调用函数显示树形结构
    55. showTree($tree);

  • 相关阅读:
    【数据结构初阶】 顺序表三道题,带你见力扣
    python http 上传文件
    非零基础自学Java (老师:韩顺平) 第7章 面向对象编程(基础部分) 7.2 成员方法
    MES集成 | 集成标准不统一?看得帆云iPaaS怎么应对
    ubuntu主机之间移植python环境并修改pip指向
    从路由器真机提取固件包(二)
    python安全工具开发笔记(二)——python Web编程
    Python自动生成小学生口算试卷源代码,可设置各算数项和取值范围、可以生成求结果、求算数项、带括号的算式
    【云原生之k8s】K8s 管理工具 kubectl 详解(三)
    通常用哪些软件做数据可视化大屏?
  • 原文地址:https://blog.csdn.net/weixin_39934453/article/details/134084253