资讯专栏INFORMATION COLUMN

菜单的无限极分类实现

jsliang / 3292人阅读

/**
 * 递归
 */
public function getTree($data, $pk = "id", $pid = "pid", $child = "child", $root = 0)
{
    $tree = array();
    foreach($data as $k => $v) {
        if($v[$pid] == $root) {
            //父亲找到儿子
            $v[$child] = $this->getTree($data, $pk, $pid, $child, $v[$pk]);
            $tree[] = $v;
        }
    }
    return $tree;
}
/** 
 * 迭代
 */
public function getTree($list, $pk = "id", $pid = "pid", $child = "child", $root = 0)
{
    $tree     = array();
    $packData = array();
    foreach ($list as $data) {
        $packData[$data[$pk]] = $data;
    }
    foreach ($packData as $key => $val) {
        if ($val[$pid] == $root) {
            //代表跟节点
            $tree[] = &$packData[$key];
        } else {
            //找到其父类
            $packData[$val[$pid]][$child][] = &$packData[$key];
        }
    }
    return $tree;
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28209.html

相关文章

  • 分层数据Hierarchical Data探索(1.递归)

    摘要:分层数据探索例如无限级分类多级菜单省份城市引言什么是分层数据类似于树形结构,除了根节点和叶子节点外,所有节点都有一个父节点和一个或多个子节点。接下来我会先通过一般方法和递归方法来实现无限极分类,然后再通过两种数据模型来谈一谈分层数据的处理。 分层数据Hierarchical Data探索(例如:无限级分类、多级菜单、省份城市) 引言 什么是分层数据? 类似于树形结构,除了根节点和叶子节...

    yzd 评论0 收藏0
  • 使用 Baum 嵌套集合模型来实现 Laravel 模型无限分类

    摘要:本文经授权转自社区使用嵌套集合模型来实现模型的无限极分类说明大家通常都是使用递归实现无限极分类,都知道递归效率很低,下面推荐一个的扩展包,快速让你的数据模型支持无限极树状层级结构,并且兼顾效率。 本文经授权转自 PHPHub 社区 使用 Baum 嵌套集合模型来实现 Laravel 模型的无限极分类 说明 大家通常都是使用递归实现无限极分类,都知道递归效率很低,下面推荐一个 Larav...

    superPershing 评论0 收藏0
  • 无限分类(或菜单高性能实现思路

    摘要:一般说到无限级分类菜单之类的东西,大家我的数据表设计一般是这样的更多字段衣物上衣裤子西裤长西裤短西裤衬衫其中,表示父分类的。 一般说到无限级分类、菜单之类的东西,大家 (我) 的数据表设计一般是这样的 id parent_id title 更多字段... 1 0 衣物 ... 2 1 上衣 ... 3 1 裤子 ... 4 3 西裤 ... 5 4 长西裤 ....

    aristark 评论0 收藏0
  • 【日常手记】之Laravel5.3

    摘要:个人网站最近刚写了一个手机在线播放的电影站使用日常手记更新使用的的查询作用域的本地作用域去自定义可复用的约束集合,方便链式调用什么是本地查询作用域本地作用域允许我们定义通用的约束集合以便在应用中复用。 关于作者 程序开发人员,不拘泥于语言与技术,目前主要从事PHP和前端开发,使用Laravel和VueJs,App端使用Apicloud混合式开发。合适和够用是最完美的追求。 个人网站:...

    kidsamong 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<