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

thinkphp5实现无限分类

首先声明一下,我们采用递归的方式来实现无限分类。但无限分类的实现,不是只是递归一种方式,还有一种是全路径方式,也可以实现,不过,这种方式通常用在全路径导航菜单中。...所以,这里我们还是用最常见的递归函数来实现:无限分类。...首先我们先创建一个静态方法:getCate,为什么要静态方式,因为静态方法执行效率高,不需要实例化,而且,分类查询是使用非常频繁的操作,很多查询都要依赖分类查询的结果。.../** * @param int $pid: 当前分类的父id * @param array $result:引用返回值 * @param int $blank:设置分类之间的显示提示...$cate_name; //3-2将查询到的当前记录保存到结果$result中 $result[] = $value; //3-3关键:将当前记录的id,做为下一分类的父id

1.1K30
您找到你想要的搜索结果了吗?
是的
没有找到

laravel生成无限分类

无限分类是很常见的功能,算法的好坏对于获取分类树的性能起到决定性的作用。...尤其当分类数据和层级多时,一个糟糕的算法将使服务器不堪重负 以下用laravel实现无限分类功能,包括: 数据表设计 填充模拟数据 生成分类分类树的后台维护 数据表设计 字段名 描述 id 主键id...name 类目名称 parent_id 父类目 ID is_directory 是否拥有子类目 level 当前类目层级 path 该类目所有父类目 id 为什么要用level与path 无限分类中...createCategory 方法 $this->createCategory($child, $category); // $category 为刚创建的类目,作为子类目的父类目参数...数据填充结果 生成分类分类树是一个通用的功能,适合将其封装为一个服务,创建CategoryService类

2.7K40

PHP无限分类函数封装与应用

下面的讲解我用的是ThinkPHP框架,与PHP用法是一样的。...ASC,id ASC        //这里的排序是至关重要的 Step 3、查询出的结果是一个常规的二维数组,如下图: ps:pid就是parent_id,这里是举个例子,下文一样 Step 4、封装的无限分类数组处理函数...: /**      * 无限分类      *      * @access public      * @param Array $data      *            //数据库里获取的结果集...     */      // 存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空     public static $treeList =...,这个函数是我从互联网上看到借鉴的,进行了一些修改,希望能够帮助大家解决工作或者学习中遇到的困难,不管是PHP还是thinkphp,用法其实一样,如果此文存在错或者有不懂的地方,可以在下方评论栏留言,我将为您解答

1.6K130

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

经常在各大论坛或新闻板块详情页面下边看到评论功能,当然不单单是直接发表评论内容那么简单,可以对别人的评论进行回复,别人又可以对你的回复再次评论或回复,如此反复,理论上可以说是没有休止,从技术角度分析很容易想到运用无限分类技术存储数据...,运用递归获取评论层级结构数据,运用ajax实现评论页面交互,这里用thinkphp框架做个简单的demo练练手,为了简化流程这里第三评论开始停止回复,当然只要在这个基础上稍作修改就可以实现无限回复功能...3.页面操作细节:点击某个评论的回复按钮时,显示回复文本输入框,同时其他评论的回复文本输入框消失,当再次点击该回复按钮时,该文本框消失 4.在最后一评论(这里设置是第三)关闭回复功能 5.即时显示评论总数...html lang="en" <head <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" <title php无限分类实战...--三评论end-- </li </volist </ul

2K30

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

各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限分类列表的制作了。 什么是无限分类?...无限分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限分类,将其简单理解成分类就好了。...无限分类原理简介 无限分类看似”高大上”,实际上原理是非常简单的 。无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性。要满足无限分类,数据库需要有两个必须的字段,id,pid。...php无限分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,下面是一个使用递归实现的简单的php无限分类的函数;也许这不是最优的方法,但对于一般的应用也足够了。...'), (11, 10, 1, 'thinkphp技巧'), (12, 10, 2, 'thinkphp模板'), (13, 12, 3, '模板知识总结'), (14, 12, 2, '模板视频教程'

97021

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

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

2.1K20

thinkphp框架无限栏目的排序功能实现方法示例

本文实例讲述了thinkphp框架无限栏目的排序功能实现方法。...分享给大家供大家参考,具体如下: 题目中我们并没有说明是tp5的无限排序还是tp3的无限排序就是为了让小新手们明白,这些功能的实现跟你使用的框架是没有关系的,不管你是tp5还是tp3还是laravel...无限栏目的排序非常简单,这次以博文的方式分享给大家解决的思路。 上图: ? 上图是我们实现的无限分类,我们要注意两个字段,id和排序sort字段,目前sort字段的值都是50,是默认值。...上图sort用来实现排序pid用来实现无限分类 实现无限分类的关键是我们对排序字段的写法,我们把整块代码拿到,但是用到的只有一行: <form method="post" action="" <table...$v) { $cate- where(array('id'= $k))- save(['sort'= $v]); } return; } $cateRes=$cate- cateTree();//无限分类

41330

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

无限分类查询有很多方式。本文记录的方式是先将所有数据查出来,再使用递归对数据进行排序,并附加层级字段(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.4K40
领券