php部分,一个用递归无限分类的方法
<?php
$data[]=array('id'=>1,'parentid'=>0,'name'=>'中国');
$data[]=array('id'=>2,'parentid'=>0,'name'=>'美国');
$data[]=array('id'=>3,'parentid'=>0,'name'=>'韩国');
$data[]=array('id'=>4,'parentid'=>1,'name'=>'北京');
$data[]=array('id'=>5,'parentid'=>1,'name'=>'上海');
$data[]=array('id'=>6,'parentid'=>1,'name'=>'广西');
$data[]=array('id'=>7,'parentid'=>6,'name'=>'桂林');
$data[]=array('id'=>8,'parentid'=>6,'name'=>'南宁');
$data[]=array('id'=>9,'parentid'=>6,'name'=>'柳州');
$data[]=array('id'=>10,'parentid'=>2,'name'=>'纽约');
$data[]=array('id'=>11,'parentid'=>2,'name'=>'华盛顿');
$data[]=array('id'=>12,'parentid'=>3,'name'=>'首尔');
$tree=build_tree($data,0);
print_r($tree);
function findChild($arr,$id){
$childs=array(); //定义一个数组
foreach ($arr as $k => $v){ //把父级二维数组遍历
if($v['parentid']== $id){ //判断子集的parentid的值是不是等于父级id的值
$childs[]=$v; //如果等于把这个子集交给变量数组$childs
}
}
return $childs; //返回符合条件的所有子集
}
function build_tree($rows,$root_id){ //$root_id父级代号
$childs=findChild($rows,$root_id);
if(empty($childs)){
return null;
}
foreach ($childs as $k => $v){ //遍历符合父级id值的数组
$rescurTree=build_tree($rows,$v['id']); //把子集再遍历,如果有子集就交给$rescurTree
if( null != $rescurTree){
$childs[$k]['childs']=$rescurTree; //把子集的子集交给$childs[$k]['childs'],['childs']是自定义的一个键值
} } return $childs; } ?>

php部分,一个用递归无限分类的方法的更多相关文章
- php递归无限分类、根据子类获取所有顶类
//递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...
- 后台树状菜单,js实现递归无限分类
//新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...
- PHP+Mysql无限分类的方法汇总
无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...
- PHP递归无限分类,数组和直接输出。
去年在一家公司做项目开发,用到商城三级分类,看了之前的程序员写的分类也是头大,三级分类,循环套循环三次( foreach(){ foreach(){ foreach(){ } } } ),然后写了一个 ...
- 基于bootstrap-treeview做的一个漂亮的无限分类树层级联动菜单
2017年12月11日09:59:15 因为工作需要把原来的bootstrap-treeview做了一些小改动,方便后台开发人员使用 最终效果,看起来还行,但是其实不是特别友好对用户来说,但是对开发者 ...
- PHP无限分类生成树方法,非递归,引用
//这个是核心方法 function generateTree($items){ $tree = array(); foreach($items as $item){ ...
- PHP实现无限分类
PHP实现无限分类 无限分类 递归 无限级分类是一种设计技巧,在开发中经常使用,例如:网站目录.部门结构.文章分类.笔者觉得它在对于设计表的层级结构上面发挥很大的作用,比如大家在一些平台上面,填写邀请 ...
- TreeView递归绑定无限分类数据
TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...
- php不用递归完成无限分类,从表设计入手完整演示过程
无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, ...
随机推荐
- 黑马程序员——C语言基础 变量类型 结构体
Java培训.Android培训.iOS培训..Net培训.期待与您交流! (以下内容是对黑马苹果入学视频的个人知识点总结) (一)变量类型 1)局部变量 1> 定义:在函数内部定义的变量,称为 ...
- ubuntu方块乱码
更改下环境变量/etc/default/locale LANG="en_US.UTF-8"LANGUAGE="en_US:en"
- 第3.3 案例2: 工作队列 job queue
第2个案例就是工作队列,典型的点对点的消息,一个Producer发送一个工作消息到队列去,具有Listener类的Consumer能够从工作队列中获得一个工作情况的消息,这个消息被这个消费者消费掉之后 ...
- PHP 关于SQL注入的防范措施。
最近在使用框架的时候还是有点不安,不知道框架的设计者有没有考虑到SQL-Injection的问题,我在顶层需不需要做一些必要的过滤等等,由 此我特意的去StackOverflow看了下,真是获益良多, ...
- spring boot 跨域访问处理
问题场景:由于项目中使用到跨域访问,今天也得到高人指点,所以写出来分享给大家.可能是考虑到前后端分离,前端后端服务器不在一台机器上,出现这种跨域访问的情况.正常情况下本地访问是没有问题,但是遇到这种非 ...
- 移动端div移动
<!doctype html> <html lang="en"> <head> <meta http-equiv="Conten ...
- Spark External Datasets
Spark能够从任何支持Hadoop的存储源来创建RDD,包括本地的文件系统,HDFS,Cassandra,Hbase,Amazon S3等.Spark支持textFile.SequenceFiles ...
- swift 闭包循环引用
当使用闭包时,类本身持有self,然后又在闭包中访问了self或者self的属性,就会导致恶心额循环引用.swift提供的解决方法是在闭包中定义捕获列表,捕获列表是闭包想怎么引用捕获来的变量.例如下面 ...
- struts2 错误提示页面
以前做的一个网站,最近服务器后台出现一些异常,问题是客户访问一个该网站下不存在的action,为了给客户一个友好的界面提示以及减小服务器端日志文件的内容.就在struts2下进行了如下配置: 在str ...
- xml配置文件的读写
using System.Xml; //----------------------------------------------读出XML文件中的节点值 XmlDocument xmlDoc = ...