首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无限分类数据进行重新排序(非树形结构)

无限分类查询有很多方式。本文记录的方式是先将所有数据查出来,再使用递归对数据进行排序,并附加层级字段(level)。此方式仅仅对无限的数据进行排序,并没有将子内容放入父。 1....在 TP6.0 中使用的 对无限分类进行排序,并附加层级字段 ---- <?...CategoryModel::field('id,pid,name') ->order('sort desc') ->select(); $data = $this->_sort($data);//对无限分类重新排序...dump($data); } /** * 无限分类递归排序 */ private function _sort($data, $pid = 0, $level = 0) { static $arr...其他写法 ---- /** * 无限分类排序 */ private function getTree($array, $pid = 0, $level = 0) { // 声明静态数组,避免递归调用时

1.5K40
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    如何使用neo4j存储树形无限菜单

    对于树形菜单,想必大家都不陌生,这种业务数据,由于量小,关系复杂,所以在关系型数据库中,存储的格式一般都如下所是: id,name,pid 01,bigdata,00 002,hadoop,01...如果使用主外键表存储,通常关系越复杂需要的外键表越多,假如你有8层关系,意味着你需要join到8个外键表,才能获取一条完整数据,这样一比,大多数时候,还是将这种数据,存储在一个表中,然后通过父字段进行找到上一...当然树形菜单的数据,也可以存储在neo4j里面,从而提供强大的查询分析功能,neo4j的小数据下的例子与xmind的思维导图非常类似,都有着一图胜万语强大表现能力。...图形数据库里面描述数据,是通过节点和关系来描述的,关系必须有开始节点和结束节点 ,节点和关系都可以有属性。...下面说下将树形菜单,存储到neo4j的思路: (1)递归的每行数据是一个节点,首先插入所有的节点 (2)找到每个节点的父节点做为start节点,本身作为end节点,建立起关系 上面的两个步骤既可以分开执行

    2.7K60

    多叉树结合JavaScript树形组件实现无限树形结构(一种构建多级有序树形结构JSON(或XML)数据源的方法)

    无限树形结构”,顾名思义,没有级别的限制,它的数据通常来自数据库中的无限层次数据,这种数据的存储表通常包括id和parentId这两个字段,以此来表示数据之间的层次关系。...本文将以目前市场上比较知名的Ext JS框架为例,讲述实现无限树形结构的方法,该方法同样适用于其它类似的JavaScript树形组件。 Ext JS框架是富客户端开发中出类拔萃的框架之一。...TreeNode用来实现静态的树形结构,AsyncTreeNode用来实现动态的异步加载树形结构,后者最为常用,它通过接收服务器端返回来的JSON格式的数据,动态生成树形结构节点。...本文以基于Ext JS的应用系统为例,讲述如何将数据库中的无限层次数据一次性在界面中生成全部树节点(例如在界面中以树形方式一次性展示出银行所有分支机构的信息),同时对每一个层次的节点按照某一属性和规则排序...,就可以实现多叉树的兄弟节点横向排序和先序遍历了,实现了将层次数据转换为有序无限树形结构JSON字符串的目的。

    2.6K00

    JS实现无限分页加载——原理图解

    由于网页的执行都是单线程的,在JS执行的过程中,页面会呈现阻塞状态。因此,如果JS处理的数据量过大,过程复杂,可能会造成页面的卡顿。...有很多网站使用 无限分页 的模式,即网页视窗到达内容底部就自动加载下一部分的内容... 本篇就无限分页的实现模型,讲述其中奥妙。...原理图 实现无限分页的过程大致如下: 1 视窗滚动到底部 2 触发加载,添加到现有内容的后面。 因此,可能会出现两种情况: 1 当页面的内容很少,没有出现滚动条。...实现的思路: 1 如果真实的内容比视窗高度小,则一直加载到超过视窗 2 如果超过了视窗,则判断下面隐藏的部分的距离是否小于一定的值,如果是,则触发加载。...(即滚动到了底部) 代码样例 代码部分没有太多的内容,需要注意的是: 1 使用fixed定位加载框 2 使用setTimeout定时触发判断方法,频率可以自定义 3 通过 真实内容高度 - 视窗高度 -

    6K100

    js 实现扁平数组转为树形结构数组及树形结构数组转为扁平数组

    // pid 代表属于的父 id // id 代表的是自己本身的id,本身的 id 是多少 let flatArr = [ { id: 1, name: "部门1", pid: 0 },...返回为带有层级的对象数组 // 步骤 // 为了避免使用递归导致的性能较差,每次遍历一遍数字,这里使用 map 存储对象 // 1.先将每个对象变为通过 id 保存的具体对象的map 对象 // 2.创建结果数组...// 3.遍历传入的数组,根据传入的 parent_id(pid),获取所有父节点的对象,push 到数组中,作为第一层对象 // 4.在遍历数组过程中,获取数组的 pid,从刚才保存的对象中寻找父对象是否存在如果存在..."部门5", pid: 4 }], }, ], }, ], }, ]; // 树形结构转为扁平数组...扁平数组转为属性结构数组,如果使用递归实现,时间复杂度为 O(2^n) 2. 注意修改原数组是否有影响,如果有影响,并且有原数组引用会产生问题。

    1.9K20

    php无限分类实现评论及回复功能

    经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很容易想到运用无限分类技术存储数据...,运用递归获取评论层级结构数据,运用ajax实现评论页面交互,这里用thinkphp框架做个简单的demo练练手,为了简化流程这里第三评论开始停止回复,当然只要在这个基础上稍作修改就可以实现无限回复功能...二、实现思路及细节 1.数据表设计 ?...html lang="en" <head <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" <title php无限分类实战...JS代码 (1).

    2.1K30

    Android ExpandableListView双层嵌套实现树形菜单

    在Android开发中,列表可以说是最常见的了,一般都是使用ListView,当涉及到二维数组时,更多的使用到ExpandableListView,然而当数据结构比较复杂时,就需要使用三菜单或者更多级的菜单来显示...,这就让人比较头疼了,最近做的项目就涉及到了三菜单,遇到了不少问题,虽然不够完美,但是基本需求实现了,在此记录一下。...(之前见过有人使用ListView实现4、5甚至更多级菜单的,是在Adapter的数据源里定义的结构,根据等级缩进左间距的倍数,链接地址找不到了,有兴趣的可以自己找找) 先上效果图: ? ?...blog.csdn.net/shexiaoheng</a * * <br/ * <br/ * * @Detail 本Demo为ExpandableListView嵌套ExpandableListView实现菜单的例子

    3.6K20

    PHP利用递归函数实现无限分类的方法

    各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限分类列表的制作了。 什么是无限分类?...无限分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限分类,将其简单理解成分类就好了。...分类无处不在,分类显得“无限”。我这里就不说无限分类的必要性了。 无限分类原理简介 无限分类看似”高大上”,实际上原理是非常简单的 。无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性。...要满足无限分类,数据库需要有两个必须的字段,id,pid。id用来标识自身,而pid则是用来表明父id。也就是说,每个分类记录不仅描述了自身,还描述了与其关心最为紧密的另一个id。...php无限分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,下面是一个使用递归实现的简单的php无限分类的函数;也许这不是最优的方法,但对于一般的应用也足够了。

    1.1K21

    PHP 无限分类数据库设计及实现

    ♖背景 最近复习算法,在此对无限分类的实现方法稍作整理,当然也是参考了道友的经验,目测适合实际的项目应用,当然,也有不少公司的笔试题还会涉及到呢,有何问题,欢迎各位道友指摘 … 操作环境:Win10...首先,实现无限分类的方式有: 以父ID设计,运用递归实现的方式 以全路径实现无限分类方式 ②....父ID,默认为根分类 0 * @param int $sel_id 所选中的分类ID,多用于前端 selected 标识 * @param array $result 数组整合...deepCatesForDown(0,6); $this->assign('cateListDown',$cateListDown); $this->display(); 前端Html数据显示参考: 递归方式获取 无限分类数据...全路径实现方式 对应参考上面的介绍方式,核心处理代码如下 /** * 全路径方式 获取无限极分类数据 由上到下进行获取 * @return array */ public

    2.1K20
    领券