ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

电商导航无限极分类

2019-06-15 16:01:50  阅读:225  来源: 互联网

标签:status name parent int 无限极 array 电商 导航 id


简单版的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简单的无限极分类结束。

标签:status,name,parent,int,无限极,array,电商,导航,id
来源: https://www.cnblogs.com/T8888/p/11027866.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有