<?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部分,一个用递归无限分类的方法的更多相关文章

  1. php递归无限分类、根据子类获取所有顶类

    //递归无限分类树 public static function diGui($data, $pid) { $arr = collect([]); if (empty($data)) { return ...

  2. 后台树状菜单,js实现递归无限分类

    //新闻类别管理 public function new_classify() { $arr = M('news_classify')->where("fid = 0")-& ...

  3. PHP+Mysql无限分类的方法汇总

    无限分类是个老话题了,来看看PHP结合Mysql如何实现.第一种方法这种方法是很常见.很传统的一种,先看表结构表:categoryid int 主键,自增name varchar 分类名称pid in ...

  4. PHP递归无限分类,数组和直接输出。

    去年在一家公司做项目开发,用到商城三级分类,看了之前的程序员写的分类也是头大,三级分类,循环套循环三次( foreach(){ foreach(){ foreach(){ } } } ),然后写了一个 ...

  5. 基于bootstrap-treeview做的一个漂亮的无限分类树层级联动菜单

    2017年12月11日09:59:15 因为工作需要把原来的bootstrap-treeview做了一些小改动,方便后台开发人员使用 最终效果,看起来还行,但是其实不是特别友好对用户来说,但是对开发者 ...

  6. PHP无限分类生成树方法,非递归,引用

    //这个是核心方法 function generateTree($items){     $tree = array();     foreach($items as $item){         ...

  7. PHP实现无限分类

    PHP实现无限分类 无限分类 递归 无限级分类是一种设计技巧,在开发中经常使用,例如:网站目录.部门结构.文章分类.笔者觉得它在对于设计表的层级结构上面发挥很大的作用,比如大家在一些平台上面,填写邀请 ...

  8. TreeView递归绑定无限分类数据

    TreeView递归绑定无限分类数据 实现一个动态绑定,无限级分类数据时,需要将数据绑定到TreeView控件,分类表的结构是这样的: 字段 类型 Id int ParentId int Name N ...

  9. php不用递归完成无限分类,从表设计入手完整演示过程

    无限分类是什么就不废话了,可以用递归实现,但是递归从数据库取东西用递归效率偏低,如果从表设计入手,就很容易做到网站导航的实现,下面是某论坛导航,如下图 网上无限分类大多不全面,今天我会从设计表开始, ...

随机推荐

  1. 一个无聊的python + opencv 示例

    opencv不用多说,先推荐一个给力的教程: https://opencv-python-tutroals.readthedocs.io/en/latest/py_tutorials/py_tutor ...

  2. Cheap Hollister Clothing

    (link to hollisterco site), Spectacles don't simply take care of the eye area inside sun; Putting th ...

  3. 在 ASP.NET 中创建数据访问和业务逻辑层(转)

    .NET Framework 4 当在 ASP.NET 中处理数据时,可从使用通用软件模式中受益.其中一种模式是将数据访问代码与控制数据访问或提供其他业务规则的业务逻辑代码分开.在此模式中,这两个层均 ...

  4. C#文件流读写文件的简单winform实现

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...

  5. javap查看class文件

    通过JVM编译java文件生成class字节码文件,很多时候很想用工具打开看看,目前还不清楚哪一个软件专门查看class文件的,但是通过windows下的javap命令可以查看详细的class文件 S ...

  6. c++中变量声明和变量定义的区别。2016年12月6日

    整个流程: 1.程序告诉cpu,程序将要使用一个变量.(暂时不一定用到,先说一下.) 2.程序告诉CPU,程序现在就要使用一个变量.(现在就用) 3.cpu按照这个变量的类型,把内存划分出几个单位(b ...

  7. windows下python Tkinner环境布置(包含PIL环境安装)

    布置步骤:1.安装python 2.7.11 安装步骤:由于网上存在有相关经验,所以在此引用一下 http://jingyan.baidu.com/article/0bc808fc42dfab1bd4 ...

  8. ng-Enter指令

    app.directive('ngEnter', function() { return function(scope, element, attrs) { element.bind("ke ...

  9. Android APP使用NDK编译后的ffmpeg库出现undefined reference to 'posix_memalign'错误

    在android程序中使用NDK编译后的ffmpeg库的时候出现了如下错误: jni/libs/libavutil.a(mem.o): in function av_malloc:libavutil/ ...

  10. HttpSession

    (Cookie是用来设置浏览器保存数据的时间的: Session是只要浏览器不关闭,数据则会存在,一旦关闭浏览器数据即消失 ) 1. HttpSession概述 * HttpSession是由Java ...