首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

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

相信很多学php的很多小伙伴都会尝试做一个网上商城作为提升自己技术的一种途径。各种对商品分类,商品名之类的操作应该是得心应手,那么就可以尝试下无限分类列表的制作了。 什么是无限分类?...无限分类是一种分类技巧,例如部门组织,文章分类,学科分类等常用到无限分类,将其简单理解成分类就好了。...其实我们仔细想一下,生活中的分类简直太多了,衣服可以分为男装和女装,也可以分为上衣和裤子,也可以根据年龄段分类分类无处不在,分类显得“无限”。我这里就不说无限分类的必要性了。...无限分类原理简介 无限分类看似”高大上”,实际上原理是非常简单的 。无限分类不仅仅需要代码的巧妙性,也要依托数据库设计的合理性。要满足无限分类,数据库需要有两个必须的字段,id,pid。...php无限分类是经常要用到的,本人以前一直用的是已经写好的,所以没仔细去研究过,下面是一个使用递归实现的简单的php无限分类的函数;也许这不是最优的方法,但对于一般的应用也足够了。

97121

PHP使用递归算法查找子集获取无限分类等实操

image.png 递归函数是我们常用到的一类函数,最基本的特点是在函数或子过程的内部,直接或者间接地调用自己的算法,但必须在调用自身前有条件判断,否则无限调用下去,也就是所谓的死循环 递归在项目中用到比较多的地方是获取商品分类或者其他的分类...,以及邀请人等等~还有一些比如阶乘,斐波那契数列,汉诺塔也用到了递归算法 首先来说说什么是无限分类。...按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子,网络上很多无限级的分类,但无非是两种,一种是递归算法,一种是非递归算法 无限分类是一种分类技巧,例如部门组织,文章分类...,学科分类等常用到无限分类,将其简单理解成分类就好了。...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:PHP使用递归算法查找子集获取无限分类等实操

1.8K30

PHP实现无限分类的两种方式示例【递归和引用方式】

本文实例讲述了PHP实现无限分类的两种方式。...分享给大家供大家参考,具体如下: 面试的时候被问到无限分类的设计和实现,比较常见的做法是在建表的时候,增加一个PID字段用来区别自己所属的分类 $array = array( array('id'...pid' = 3, 'name' = '永年区'), array('id' = 9, 'pid' = 1, 'name' = '武安市'), ); 数据在数据库中存储大概是这个样子,怎么实现无限递归呢...,有两种常用的做法,递归和引用算法 递归算法 /** * 递归实现无限分类 * @param $array 分类数据 * @param $pid 父ID * @param $level 分类级别 *...<br / '; } 输出结果 无限分类实现ok 河北省 –邯郸市 —-永年区 –武安市 北京市 –朝阳区 —-望京 —-酒仙桥 –通州区 引用算法 function generateTree

1.6K20

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无限分类实现方法分析

本文实例讲述了php无限分类实现方法。分享给大家供大家参考,具体如下: 今天给大家带来的是php无限分类技术,本人把无限分类划分为两种。...php //分类方法 function make_list($parent,$deep = 0){ global $tasks;//申明全局变量 global $strArr;/...$value; if(isset($tasks[$key])){ make_list($tasks[$key],++$deep);//递归调用函数 } }...运行结果图 第二种方法(查表法) 这种方法其实是在一开始只查询出parent_id=0的所有任务,然后采用递归的方式,动态生成查询条件,然后把每条记录的task_id又作为task_id,这样又进行新一轮的查询...$task_id; //递归查询 findArr($where,++$deep); } } findArr(); //打印缩进数组 echo "<pre

91331

PHP实现无限分类生成分类树的方法

本文实例讲述了PHP实现无限分类生成分类树的方法。...分享给大家供大家参考,具体如下: 现在的分类数据库设计基本都是:每一个分类有一个id主键字段,一个pid指向父类的id,这样便可实现无限分类,取出的数据就是如下的格式: $arr = array( array..."pid" => 2 , 'cat' => '栏目十三'), array("id" => 14, "pid" => 13 , 'cat' => '栏目十四') ); 不多说,直接上处理代码: //生成无限分类树...v){ $refer[$v['id']] = & $arr[$k]; //创建主键的数组引用 } foreach($arr as $k => $v){ $pid = $v['pid']; //获取当前分类的父级...Array ( [id] => 12 [pid] => 11 [cat] => 栏目十二 ) ) ) ) ) ) 如果大家需要这样的组装格式,或者需要该格式方便后续的处理,可以尝试此方法 希望本文所述对大家PHP

94830

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

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

2K30

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

♖背景 最近复习算法,在此对无限分类的实现方法稍作整理,当然也是参考了道友的经验,目测适合实际的项目应用,当然,也有不少公司的笔试题还会涉及到呢,有何问题,欢迎各位道友指摘 … 操作环境:Win10...使用语言:PHP 使用框架:ThinkPHP 3.2.3 ♘前期准备 ①....首先,实现无限分类的方式有: 以父ID设计,运用递归实现的方式 以全路径实现的无限分类方式 ②....父ID 方式 核心处理代码如下,注意参数备注信息,便于正确的调用 /** * 数据库设计 递归方式 获取无限分类数据 由上到下进行获取 * @param int $pid...全路径实现方式 对应参考上面的介绍方式,核心处理代码如下 /** * 全路径方式 获取无限分类数据 由上到下进行获取 * @return array */ public

2.1K20
领券