zoukankan      html  css  js  c++  java
  • laravel 在三级分类下拉选框中默认值

    这是一个商品表,记录了商品的分类,分三类,顶级分类、一级分类、二级分类

    在编辑修改商品的信息的视图

    先得给控制器传递商品的 id ,根据 id 获取商品全部信息,以及获取所有分类信息

    然后进行家谱树查找,参数为分类信息-数组,商品的分类id-整型

    这样子得到了,子对父的二维数组,

    将此二维数组,进行无限极分类,得到三位数组

    第一维就是顶级分类,第二维是一级分类,第三维是二级分类

    把得到的这个数组传给视图,循环遍历,输出值给option即可

    家谱树代码:

    /**
    * 家谱树,通过子id找父id
    * @param array $data 待分类的数据
    * @param int /string $pid 要找的祖先节点
    * @return array
    */
    function Ancestry($data , $pid) {
    static $ancestry = array();

    foreach($data as $key => $value) {
    if($value['id'] == $pid) {
    $ancestry[] = $value;

    Ancestry($data , $value['parent_id']);
    }
    }
    return $ancestry;
    }


    无限极分类为多维数组

    /**
    * 把无限极分类重组成多维数组
    * @param $array
    * @param int $pid
    * @return array
    */
    function dataTree($array, $pid = 0){
    $arr = [];
    foreach ($array as $item) {
    if ($item['parent_id'] == $pid){
    $tmp = dataTree($array,$item['id']);
    $tmp && $item['son'] = $tmp;
    $arr[] = $item;
    }
    }
    return $arr;
    }
     
  • 相关阅读:
    python 之 sys.argv 外部传参动态匹配内部字典
    我是如何打败拖延症的
    图解Docker容器和镜像
    docker1-安装和使用
    python操作RabbitMQ
    Python操作 Memcache、Redis
    python队列、线程、进程、协程
    项目协作与工作流程规范
    python26:自定义form表单验证
    s11d27 算法
  • 原文地址:https://www.cnblogs.com/muwu/p/8934389.html
Copyright © 2011-2022 走看看