• 电商导航无限极分类


    简单版的PHP生成无限极分类代码。其中包括了数据库设计、以及输出分类HTML代码。

     SQL文件表Class,c_id主键自增,c_name分类名称,c_status分类状态(这里没有用到),c_parent_id父级ID

    很显然一级菜单分别为:服装,食品,家具,孕婴,化妆品,它们的c_parent_id都为0,没有父级。

    其他字段c_parent_id所指的值是上一级菜单的c_id,进行分类,综合同理!

    废话不多说,相信都懂。实在不懂就没办法了!

    直接上代码

    1、首先查询出来class表所有数据

    array(24) {
      [0]=>
      array(4) {
        ["c_id"]=>
        int(1)
        ["c_name"]=>
        string(6) "服饰"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
      }
      [1]=>
      array(4) {
        ["c_id"]=>
        int(2)
        ["c_name"]=>
        string(6) "食品"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
      }
      [2]=>
      array(4) {
        ["c_id"]=>
        int(3)
        ["c_name"]=>
        string(6) "家居"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
      }
      [3]=>
      array(4) {
        ["c_id"]=>
        int(4)
        ["c_name"]=>
        string(6) "孕婴"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
      }
      [4]=>
      array(4) {
        ["c_id"]=>
        int(5)
        ["c_name"]=>
        string(9) "化妆品"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
      }
      [5]=>
      array(4) {
        ["c_id"]=>
        int(8)
        ["c_name"]=>
        string(6) "男装"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(1)
      }
      [6]=>
      array(4) {
        ["c_id"]=>
        int(9)
        ["c_name"]=>
        string(6) "女装"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(1)
      }
      [7]=>
      array(4) {
        ["c_id"]=>
        int(10)
        ["c_name"]=>
        string(6) "童装"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(1)
      }
      [8]=>
      array(4) {
        ["c_id"]=>
        int(11)
        ["c_name"]=>
        string(6) "内衣"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(1)
      }
      [9]=>
      array(4) {
        ["c_id"]=>
        int(12)
        ["c_name"]=>
        string(6) "鞋子"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(1)
      }
      [10]=>
      array(4) {
        ["c_id"]=>
        int(13)
        ["c_name"]=>
        string(6) "干果"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(2)
      }
      [11]=>
      array(4) {
        ["c_id"]=>
        int(14)
        ["c_name"]=>
        string(6) "零食"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(2)
      }
      [12]=>
      array(4) {
        ["c_id"]=>
        int(15)
        ["c_name"]=>
        string(6) "特产"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(2)
      }
      [13]=>
      array(4) {
        ["c_id"]=>
        int(16)
        ["c_name"]=>
        string(6) "生鲜"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(2)
      }
      [14]=>
      array(4) {
        ["c_id"]=>
        int(17)
        ["c_name"]=>
        string(6) "饮品"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(2)
      }
      [15]=>
      array(4) {
        ["c_id"]=>
        int(18)
        ["c_name"]=>
        string(6) "家具"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(3)
      }
      [16]=>
      array(4) {
        ["c_id"]=>
        int(19)
        ["c_name"]=>
        string(6) "家纺"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(3)
      }
      [17]=>
      array(4) {
        ["c_id"]=>
        int(20)
        ["c_name"]=>
        string(6) "奶粉"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(4)
      }
      [18]=>
      array(4) {
        ["c_id"]=>
        int(21)
        ["c_name"]=>
        string(6) "玩具"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(4)
      }
      [19]=>
      array(4) {
        ["c_id"]=>
        int(22)
        ["c_name"]=>
        string(6) "用品"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(4)
      }
      [20]=>
      array(4) {
        ["c_id"]=>
        int(23)
        ["c_name"]=>
        string(6) "口红"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(5)
      }
      [21]=>
      array(4) {
        ["c_id"]=>
        int(24)
        ["c_name"]=>
        string(6) "面膜"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(5)
      }
      [22]=>
      array(4) {
        ["c_id"]=>
        int(25)
        ["c_name"]=>
        string(6) "保湿"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(5)
      }
      [23]=>
      array(4) {
        ["c_id"]=>
        int(26)
        ["c_name"]=>
        string(6) "卸妆"
        ["c_status"]=>
        NULL
        ["c_parent_id"]=>
        int(5)
      }
    }

    现在只是查询出来了当前的所以分类

    接下来就是调用无限极分类方法(传值)(记得将查询出来的所有分类传过去)进行无限极分类处理层级

    例如:

    public function Index()
        {
            //查询商品分类
            $class = $this->goodsService->getClass();
            //调用无限极分类方法getTrees
            $class_query = $this->goodsService->getTrees($class);
            //可以打印看一下
            var_dump($class_query);
        }  
    
    //无限极分类
        public function getTrees($data,$pid=0){
            $arr = [];
            foreach ($data as $k =>$v)
            {
                if ($pid==$v->c_parent_id)
                {
                    $arr[$k] = $v;
                    //这里将子分类存放在父级分类下给数组定义一个son存放子分类
                    $arr[$k]['son'] = $this->getTrees($data,$v->c_id);
                }
            }
            return $arr;
        }      

    打印效果如下

    array(5) {
      [0]=>
      array(5) {
        ["c_id"]=>
        int(1)
        ["c_name"]=>
        string(6) "服饰"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
        ["son"]=>
        array(5) {
          [5]=>
          array(5) {
            ["c_id"]=>
            int(8)
            ["c_name"]=>
            string(6) "男装"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(1)
            ["son"]=>
            array(0) {
            }
          }
          [6]=>
          array(5) {
            ["c_id"]=>
            int(9)
            ["c_name"]=>
            string(6) "女装"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(1)
            ["son"]=>
            array(0) {
            }
          }
          [7]=>
          array(5) {
            ["c_id"]=>
            int(10)
            ["c_name"]=>
            string(6) "童装"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(1)
            ["son"]=>
            array(0) {
            }
          }
          [8]=>
          array(5) {
            ["c_id"]=>
            int(11)
            ["c_name"]=>
            string(6) "内衣"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(1)
            ["son"]=>
            array(0) {
            }
          }
          [9]=>
          array(5) {
            ["c_id"]=>
            int(12)
            ["c_name"]=>
            string(6) "鞋子"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(1)
            ["son"]=>
            array(0) {
            }
          }
        }
      }
      [1]=>
      array(5) {
        ["c_id"]=>
        int(2)
        ["c_name"]=>
        string(6) "食品"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
        ["son"]=>
        array(5) {
          [10]=>
          array(5) {
            ["c_id"]=>
            int(13)
            ["c_name"]=>
            string(6) "干果"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(2)
            ["son"]=>
            array(0) {
            }
          }
          [11]=>
          array(5) {
            ["c_id"]=>
            int(14)
            ["c_name"]=>
            string(6) "零食"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(2)
            ["son"]=>
            array(0) {
            }
          }
          [12]=>
          array(5) {
            ["c_id"]=>
            int(15)
            ["c_name"]=>
            string(6) "特产"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(2)
            ["son"]=>
            array(0) {
            }
          }
          [13]=>
          array(5) {
            ["c_id"]=>
            int(16)
            ["c_name"]=>
            string(6) "生鲜"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(2)
            ["son"]=>
            array(0) {
            }
          }
          [14]=>
          array(5) {
            ["c_id"]=>
            int(17)
            ["c_name"]=>
            string(6) "饮品"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(2)
            ["son"]=>
            array(0) {
            }
          }
        }
      }
      [2]=>
      array(5) {
        ["c_id"]=>
        int(3)
        ["c_name"]=>
        string(6) "家居"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
        ["son"]=>
        array(2) {
          [15]=>
          array(5) {
            ["c_id"]=>
            int(18)
            ["c_name"]=>
            string(6) "家具"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(3)
            ["son"]=>
            array(0) {
            }
          }
          [16]=>
          array(5) {
            ["c_id"]=>
            int(19)
            ["c_name"]=>
            string(6) "家纺"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(3)
            ["son"]=>
            array(0) {
            }
          }
        }
      }
      [3]=>
      array(5) {
        ["c_id"]=>
        int(4)
        ["c_name"]=>
        string(6) "孕婴"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
        ["son"]=>
        array(3) {
          [17]=>
          array(5) {
            ["c_id"]=>
            int(20)
            ["c_name"]=>
            string(6) "奶粉"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(4)
            ["son"]=>
            array(0) {
            }
          }
          [18]=>
          array(5) {
            ["c_id"]=>
            int(21)
            ["c_name"]=>
            string(6) "玩具"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(4)
            ["son"]=>
            array(0) {
            }
          }
          [19]=>
          array(5) {
            ["c_id"]=>
            int(22)
            ["c_name"]=>
            string(6) "用品"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(4)
            ["son"]=>
            array(0) {
            }
          }
        }
      }
      [4]=>
      array(5) {
        ["c_id"]=>
        int(5)
        ["c_name"]=>
        string(9) "化妆品"
        ["c_status"]=>
        int(1)
        ["c_parent_id"]=>
        int(0)
        ["son"]=>
        array(4) {
          [20]=>
          array(5) {
            ["c_id"]=>
            int(23)
            ["c_name"]=>
            string(6) "口红"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(5)
            ["son"]=>
            array(0) {
            }
          }
          [21]=>
          array(5) {
            ["c_id"]=>
            int(24)
            ["c_name"]=>
            string(6) "面膜"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(5)
            ["son"]=>
            array(0) {
            }
          }
          [22]=>
          array(5) {
            ["c_id"]=>
            int(25)
            ["c_name"]=>
            string(6) "保湿"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(5)
            ["son"]=>
            array(0) {
            }
          }
          [23]=>
          array(5) {
            ["c_id"]=>
            int(26)
            ["c_name"]=>
            string(6) "卸妆"
            ["c_status"]=>
            NULL
            ["c_parent_id"]=>
            int(5)
            ["son"]=>
            array(0) {
            }
          }
        }
      }
    }

     此时无限极分类基本已经完成,前台HTML渲染

    博主正在用laravel,故foreach带@循环对象,大家可以忽略@

    <!--左侧栏目开始-->
         <!--此时循环一级分类--> @foreach($class as $k => $v) <div class="menu_title">{{$v->c_name}}</div>
           <!--此时循环子分类--> @foreach($v->son as $key => $value) <a href="Product_List.html">{{$value->c_name}}</a> @endforeach @endforeach

    效果如图

    PHP简单的无限极分类结束。

  • 相关阅读:
    集合框架系列教材 (六)- 其他集合
    集合框架系列教材 (五)- ArrayList
    集合框架系列教材 (四)- ArrayList
    集合框架系列教材 (三)- ArrayList
    集合框架系列教材 (二)- ArrayList
    集合框架系列教材 (一)- ArrayList
    I/O系列教材 (五)- Java的字符流 Reader Writer
    I/O系列教材 (四)- 关闭流的方式
    I/O系列教材 (三)- Java 字节流 InputStream OutputStream
    I/O系列教材 (二)- 什么Java 的流 Stream?
  • 原文地址:https://www.cnblogs.com/T8888/p/11027866.html
Copyright © 2020-2023  润新知