导读:说到无限极分类,这个在程序中是常见的一个功能点了。实现的方式也有很多种,今天着重分享一下涉及到数据库的无线分类,可以使用递归处理,也可以使用循环查询数据库处理。...', 'php学习', 0, 'icons/18.gif'), (11, 10, 'php基础知识', 'php基础知识', 0, 'icons/1.gif'), (12, 10, 'oop', 'oop...', 0, 'icons/1.gif'), (13, 10, 'php安全', '讲述php安全', 0, 'icons/1.gif'), (14, 10, 'seagull framework', '...'] = getTree($data, $v['cate_Id']); $tree[] = $v; } } return $tree; } // 这里的0就是顶级分类中的...php // 这里为了篇幅就不展现运行效果,这段代码确保是可以正常运行的。 直接使用即可。下面分享自己使用该demo实现的。
解释核心:顶级分类0下面可以有无限个子类。这就叫无限极分类。简介来说就是中国:大的范围下>>的小范围:海南吧。...想这张图一样,核心在于,从顶级分类pid=0开始起,顶级分类中的id是找到所有的相同的pid为子类,然后这些子类的id又会找到下一层级的pid(顶级分类pid=0除外,因为他上面已经没有id了)。...php $db_host="localhost"; $db_user="root"; $db_password=""; $db_name="book"; $link=mysql_connect($db_host...-- https://www.phpmyadmin.net/ -- -- 主机: localhost -- 生成日期: 2021-12-04 22:20:26 -- 服务器版本: 5.7.26 -- 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
近开发商品功能,在尝试递归和引用方式后,蓦然回首,突然发现 laravel 框架有更简单高效的实现方式,无限极分类最佳实践,open code 与大家共享!...int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键id', `name` varchar(500) DEFAULT '' COMMENT '分类名称...', `status` tinyint(3) unsigned DEFAULT '0' COMMENT '分类状态:0-禁用,1-正常', `created_at` timestamp NULL...// 控制器 $list = GoodsCategory::with('allChildren')->first(); dd($list); 处理后数据: 至此,laravel 框架无限极分类实现完毕...,相比递归和引用实现无限极分类的两种方式,是不是简单高效很多呢,关于更多 laravel 特性,欢迎评论区留言探讨。
递归函数是我们常用到的一类函数,最基本的特点是在函数或子过程的内部,直接或者间接地调用自己的算法,但必须在调用自身前有条件判断,否则无限调用下去,也就是所谓的死循环 递归在项目中用到比较多的地方是获取商品分类或者其他的分类...,以及邀请人等等~还有一些比如阶乘,斐波那契数列,汉诺塔也用到了递归算法 首先来说说什么是无限极分类。...按照我的理解,就是对数据完成多次分类,如同一棵树一样,从根开始,到主干、枝干、叶子,网络上很多无限级的分类,但无非是两种,一种是递归算法,一种是非递归算法 无限级分类是一种分类技巧,例如部门组织,文章分类...,学科分类等常用到无限级分类,将其简单理解成分类就好了。...原创文章采用CC BY-NC-SA 4.0协议进行许可,转载请注明:转载自:PHP使用递归算法查找子集获取无限极分类等实操
$v; unset($data[$k]); tree($data,$v['id'],$level+1); } } return $arr; } 递归就是先查找顶级分类...,然后通过递归查找其顶级分类下的子类。...如果有第二个顶级分类的话,他会先unset( [k])先删除已经遍历过的,就能得到第二个顶级分类 -- phpMyAdmin SQL Dump -- version 4.8.5 -- https://...www.phpmyadmin.net/ -- -- 主机: localhost -- 生成日期: 2022-05-23 18:02:43 -- 服务器版本: 5.7.26 -- PHP 版本: 7.3.4
网上相关例子基本都是 ztree,然后个人去看了看官网,看了半天没找到合适又简单的,ztree,由于界面不适合项目里面的,要是修改他的样式我还可能出现更多的错误...
作者:陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 文章目录 前言 一、什么是多级分类数据?...二、使用步骤 sql 代码 2.效果图 总结 ---- 前言 和大家共同完成获取多级分类数据 一、什么是多级分类数据? 就是很多很多的数据,按照无限极分类结构排序。...每一个数组的所有数据都是顶级分类及其其下数据 二、使用步骤 $allcate=$this->order('listorder asc')->field('id,parent_id,cate_name')...foreach ($allcate as $k1 => $v1) { if($v1['parent_id']==$v['id']){ 第三步: 取出某个顶级分类其下的二级分类的所有数据...-- https://www.phpmyadmin.net/ -- -- 主机: localhost -- 生成日期: 2022-06-04 19:25:49 -- 服务器版本: 5.7.26 -- PHP
id name ShangJiId id name ShangJiId
php /** +------------------------------------------------ 通用的树型类 +---------------------------------
$subcat = Db::name('cat')->where('pid',$id)->find(); 如果子分类的女装(pid)==父分类的(id)服装 什么意思呢?
public List<Types> buildTree(List<Types> list) { //父级(总的) List<Types> ty...
使用语言:PHP 使用框架:ThinkPHP 3.2.3 ♘前期准备 ①....首先,实现无限级分类的方式有: 以父ID设计,运用递归实现的方式 以全路径实现的无限分类方式 ②....♗代码实现 此处,讲解几个核心方法,完整代码可根据后面的附录进行下载参考,请注意此处提及的核心处理代码都在文件ZmModel.class.php 中 ①....父ID 方式 核心处理代码如下,注意参数备注信息,便于正确的调用 /** * 数据库设计 递归方式 获取无限极分类数据 由上到下进行获取 * @param int $pid...全路径实现方式 对应参考上面的介绍方式,核心处理代码如下 /** * 全路径方式 获取无限极分类数据 由上到下进行获取 * @return array */ public
数据场景: 现有视频若干,各视频有所属分类,数据项 格式如下 [ "id"=>1, "cate_id"=>1 ] 现有视频已按照指定规则排序完成 排序要求: 顺序排列中,连续的...10个视频中,不能有属于相同分类的视频 生成假数据: //假设有100个分类,ID为 1-100 //$cates=[1,...,100]; //生成5000条视频数据 $video=[]; for...($i=1;$i<=5000;$i++){ $video[]=[ "id"=>$i, "cate_id"=>mt_rand(1,100), //所属分类ID...16-52-16" "17-11-17" "18-91-18" "9-66-9" // -- id:9 - 所属分类66 - 距离同分类 ID 7 步长10 "15-56-15..." // -- id:15 - 所属分类56 - 距离同分类 ID 8 步长10 "19-55-19" "20-43-20" "21-46-21" "22-50-22" ...
php header('Access-Control-Allow-Origin:*');header('Content-type:application/json; charset=utf-8');error_reporting
$tree[] = $cate;//就把顶级分类放到里面,以次内推........php ActiveForm::end(); ?...php echo $cate['cateid'] ?...php echo $cate['title'] ; ?...php endforeach; ?
php //数组转换,compact声明的变量名做键,变量值做数组的值 $name='张三'; $Age='18'; $heigh='185cm'; $sex='男'; $Adr='上海'; $arr=...compact('name','Age','Adr','heigh','sex'); print_r($arr); 原文地址《php常用函数分类整理》
摘要 在实际项目中经常要用到无限级分类,如多级分类、导航表等。PHP 实现无限级分类通常有两种实现方式,一种是利用path字段(pid+id)标识当前层级;另一种是利用递归循环pid的方式。...PHP 实现无限级分类 – path标识 1、数据库设计 --创建分类表 create table `b_category`( `id` int primary key not null auto_increment...null default 0 comment '等级', `pid` int comment '父级id', `path` varchar(10) comment 'pid+,+id标识,用于无限级分类...' ); 2、PHP 代码实现 $data = $m->field("*, concat(path,',',id) as paths ")->order('paths')->select(); foreach...select-box"> 顶级分类
下面的讲解我用的是ThinkPHP框架,与PHP用法是一样的。...: /** * 无限级分类 * * @access public * @param Array $data * //数据库里获取的结果集... * @param Int $pid * @param Int $count * //第几级分类 * @return Array $treeList... */ // 存放无限分类结果如果一页面有多个无限分类可以使用 Tool::$treeList = array(); 清空 public static $treeList =...volist> Step 8、最终效果: 到这里就实现了一个无限下级的效果,这个函数是我从互联网上看到借鉴的,进行了一些修改,希望能够帮助大家解决工作或者学习中遇到的困难,不管是PHP
-- https://www.phpmyadmin.net/ -- -- 主机: localhost -- 生成日期: 2022-05-23 18:02:43 -- 服务器版本: 5.7.26 -- PHP...40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; 第一步:把无限极分类里面的数据变成二维数组。...foreach($items as $key => $item){ if(isset($items[$item['pid']])){//如果他是子类的话,注意:isset(0)的话(顶级分类...),只能走else啊 $items[$item['pid']]['son'][] = &$items[$key]; }else{//如果他是一级分类的话,放进去。...php // +---------------------------------------------------------------------- // | ThinkPHP [ WE CAN