php无限分类二
1.读取数据数据
/**
* 所有分类数据
* */
public function categoryData(){
$order = 'id,sort asc';
$res = $this->db->cache($this->cache)->order($order)->select();
return $data;
}
结构如下
Array
(
[] => Array
(
[id] =>
[pid] =>
[name] => 新闻40
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[pid] =>
[name] => 图片
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[pid] =>
[name] =>
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[pid] =>
[name] =>
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[pid] =>
[name] => 第4级分类
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[pid] =>
[name] =>
[desc] =>
[is_delete] =>
[add_time] =>
) )
2.创建子分类查询
/**
* 子分类列表
* */
public function pidData($pid=null){
$result ='';
$arr = $this->categoryData();
foreach($arr as $k=>$v){
if($v['pid'] == $pid){
$result[$v['id']] = $v;
}
}
return $result;
}
3.无限循环
/**
* 分类树
* */
public function tree($pid=){
$res = $this->pidData($pid);
if(empty($res)) return false;
foreach($res as $k=>$v){
$result[$v['id']] = $v; $rf = $this->tree($v['id']);
if($rf){
foreach($rf as $k=>$vv){
$result[$vv['id']]['id'] = $vv['id'];
$result[$vv['id']]['name'] = " |- ".$vv['name'];
$result[$vv['id']]['pid'] = $vv['pid'];
}
}
}
return $result;
}
最后获得的无限循环结构
Array
(
[] => Array
(
[id] =>
[pid] =>
[name] => 新闻40
[desc] =>
[is_delete] =>
[add_time] =>
) [] => Array
(
[id] =>
[name] => |-
[pid] =>
) [] => Array
(
[id] =>
[name] => |- |- 第4级分类
[pid] =>
) [] => Array
(
[id] =>
[name] => |- |- |-
[pid] =>
) [] => Array
(
[id] =>
[name] => |-
[pid] =>
) [] => Array
(
[id] =>
[pid] =>
[name] => 图片
[desc] =>
[is_delete] =>
[add_time] =>
) )
php无限分类二的更多相关文章
- php三种无限分类
无限分类,是指从一个最高分类开始,每个子分类都可以分出自己的若干个子分类,可以一直分下去,称为无限级分类: 下面是对省市县的无限极分类的列子.数据库如图: 代码示例如下: /** * @Descrip ...
- thinkphp之无限分类
namespace Home\Controller; use Home\Controller; class CategoryController extends Controller { //无限分类 ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
- MySql无限分类数据结构--预排序遍历树算法
MySql无限分类数据结构--预排序遍历树算法 无限分类是我们开发中非常常见的应用,像论坛的的版块,CMS的类别,应用的地方特别多. 我们最常见最简单的方法就是在MySql里ID ,parentID, ...
- TreeView递归绑定无限分类数据
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...
- 关于无限分类的树状输出(id,name,pid)类型的
首先创建无限分类的数据表,我这里采用的是id.name.pid这种类型(当然还有很多种无限分类的方式了,比如:id.name.pid.path.left.right左右节点的形式) CREATE TA ...
- php递归方法实现无限分类实例
数组: 代码如下 复制代码 $items = array( array('id' => 1, 'pid' => 0, 'name' => '一级11' ), array('id' ...
- PHP+Mysql无限分类的方法汇总
无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...
- PHP全路径无限分类导航LINK代码实现
<?php /** * @param php全路径无限分类 */ include('db.inc.php'); function getPathCate($cateid){ $sql = &qu ...
随机推荐
- redis集群主流架构方案分析
Redis在互联网大数据平台有着广泛的应用,主要被用来缓存热点数据,避免海量请求压垮数据库,同时可以提升服务节点的响应速度和并发量.随着数据量的增多,由于redis是占用单台物理机或虚机的内存,内存资 ...
- C#学习笔记(24)——C#将PPT批量转为JPG(最简单的方法)
说明(2017-8-1 11:15:46): 1. 哈哈,我就说微软肯定有自己的办法,把PPT转成图片. 2. 主要是要引入两个微软自己的程序集,vs里自带直接添加引用,注意一下版本,12.0是off ...
- A. Counterexample (Codeforces Round #275(div2)
A. Counterexample time limit per test 1 second memory limit per test 256 megabytes input standard in ...
- C#中的装箱拆箱
在C#中,经常需要把值类型和引用类型相互转换. 首先明确两条法则: 1.引用类型总是被分配到“堆”上. 2.值类型总是分配到它声明的地方: a.作为引用类型的成员变量分配到“堆”上 b.作为方法的局部 ...
- C++中cin的用法汇总
cin可以用于接收输入,最常见的是从控制台接收.在刚学习C++的时候经常会用cin来接收数据,这里想要系统的总结一下cin的用法,保证不灌水. C++中的cin是一个 istream对象,从标准输入中 ...
- C语言 · 求arccos值
算法提高 7-2求arccos值 时间限制:10.0s 内存限制:256.0MB 问题描述 利用标准库中的cos(x)和fabs(x)函数实现arccos(x)函数,x取值范围是[- ...
- git实践:对比svn
先前只用过svn,自然也没有去对比什么好坏,亲自上手之后发现svn和git实在是有很多不同 svn优点: 学习成本对比非常低 服务器公司统一控制管理 安全机制, 不会每个人都拷贝一份, 可以对组员限制 ...
- dapper支持操作函数和事物
dapper除了支持基础的CURD.存储过程以外,还支持操作函数和事物. dapper操作函数的代码如下: using Dapper; using System; using System.Colle ...
- php curl_multi系列函数实现多线程抓取网页
最近几天在做一个多搜索引擎关键字排名查询工具,用于及时方便的了解关键词在各大搜索引擎的排名. 在抓取360搜索的时候,发现360搜索每页只支持显示10个搜索结果,如果想获取100个搜索结果数据,就得搜 ...
- webpack9--删除冗余的CSS
我们在写代码的时候可能有些CSS并没有用到,我们如何利用webpack将冗余的CSS清除掉呢? 可以使用 purifycss-webpack 达到该目的. 1.安装 purifycss-webpack ...