文档章节

php递归和迭代家谱树(父级地区)

一个小民工
 一个小民工
发布于 2012/11/24 17:57
字数 304
阅读 489
收藏 2
<?php

$area = array(
array('id'=>1,'name'=>'安徽','parent'=>0),
array('id'=>2,'name'=>'海淀','parent'=>7),
array('id'=>3,'name'=>'濉溪县','parent'=>5),
array('id'=>4,'name'=>'昌平','parent'=>7),
array('id'=>5,'name'=>'淮北','parent'=>1),
array('id'=>6,'name'=>'朝阳','parent'=>7),
array('id'=>7,'name'=>'北京','parent'=>0),
array('id'=>8,'name'=>'上地','parent'=>2)
);

//打印家谱树(递归)
function findjiapu1($area,$id){
   static $row=array();
	foreach($area as $v){
	   if($v['id']==$id){//假如找到的元素id为传进来的id(8)
	     $row[]=$v;//把这个元素加到数组中去
		 if($v['parent']!==0){//只要这个元素的parent不为0,表明它还有上一层父元素,就用下面一行代码去找父元素
		 findjiapu1($area,$v['parent']);//然后依次通过这条记录中的parent,找id等于parent的父元素
		 }
	   }
	}
  return $row;
}
//print_r(findjiapu1($area,8));

echo '<hr>';
//打印家谱树(迭代)

function findjiapu2($area,$id){
   $row=array();
	while($id!=0){//只要id不为0就找家谱
    foreach($area as $v){
	  if($v['id']==$id){//找到id为8的那条记录
	    $row[]=$v;//找到的记录加到数组中
		$id=$v['parent'];//赋值id=2(因为id为8的parent为2)	,作为下次foreach所用	
		break;//跳出foreach循环,进行下个id(2)的查询
	  }
	}
  }
	return $row;
}

//print_r(findjiapu2($area,8));

?>

© 著作权归作者所有

一个小民工
粉丝 1
博文 42
码字总数 10693
作品 0
宁波
私信 提问
LeetCode.993-二叉树中的堂兄弟(Cousins in Binary Tree)

这是悦乐书的第374次更新,第401篇原创 01 看题和准备 今天介绍的是算法题中级别的第题(顺位题号是)。在二叉树中,根节点在深度0处,并且每个深度为的节点的子节点,他们深度为。 如果二元...

小川94
07/05
0
0
PostgreSQL Oracle 兼容性 - connect by 2

标签 PostgreSQL , Oracle , 树形查询 , 递归 , connect by , tablefunc , connectby 背景 Oracle connect by语法经常用于有树形关系的记录查询,PostgreSQL使用CTE递归语法,可以实现同样的...

德哥
2018/10/05
0
0
ElementUI tree的取值与回显

ElementUI tree的取值与回显 目的 场景一 选择树的节点后,希望提交当前选中的节点,以及节点对应的父级节点。比如下面结构,当我选中字典管理时,我希望能够获取到的ids = [1,2,3] 场景二 ...

GMarshal
2018/07/10
2.5K
0
DOM节点关系

DOM可以将任何HTML描绘成一个由多层节点构成的结构。节点分为12种不同类型,每种类型分别表示文档中不同的信息及标记。每个节点都拥有各自的特点、数据和方法,也与其他节点存在某种关系。节...

jjjssswww
2017/06/06
0
0
Ztree + PHP 无限级节点 递归查找节点法

一、前言 简单的描述一下,实习几个原理,思想,其实写很多东西,思想算是最重要的。 1、目标:将写一个无限节点的树形目录结构,如下图 步骤: 1、你的下载 插件 ztree。然后布置在你的项目...

RablePHP
2014/11/14
4K
7

没有更多内容

加载失败,请刷新页面

加载更多

75、GridFS

GridFS是MongoDB提供的用于持久化存储文件的模块,CMS使用Mongo DB存储数据,使用FGridFS可以快速集成开发。 工作原理: 在GridFS存储文件是将文件分块存储,文件会按照256KB的大小分割成多个...

lianbang_W
25分钟前
4
0
js bind 绑定this指向

本文转载于:专业的前端网站➱js bind 绑定this指向 1、示例代码 <!DOCTYPE html><html lang="zh"> <head> <meta charset="UTF-8" /> <title>bind函数绑定this指向......

前端老手
28分钟前
4
0
CentOS Linux 7上将ISO映像文件写成可启动U盘

如今,电脑基本上都支持U盘启动,所以,可以将ISO文件写到U盘上,用来启动并安装操作系统。 我想将一个CentOS Linux 7的ISO映像文件写到U盘上,在CentOS Linux 7操作系统上,执行如下命令: ...

大别阿郎
34分钟前
4
0
深入vue-公司分享ppt

组件注册 全局注册 注册组件,传入一个扩展过的构造器 Vue.component('my-component', Vue.extend({/*...*/})) 注册组件,传入一个选项对象(自动调用Vue.extend) Vue.component('my-comp...

莫西摩西
36分钟前
3
0
gitlab重置管理员密码

登录gitlab服务器 [root@localhost bin]# sudo gitlab-rails console productionLoading production environment (Rails 5.2.3)irb(main):001:0> u = User.where(email: 'admin@example.co......

King华仔o0
46分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部