php可应用于面包屑导航的迭代寻找家谱树实现方法
本文实例讲述了php可应用于面包屑导航的迭代寻找家谱树实现方法。分享给大家供大家参考。具体实现方法如下:
<?php echo "<pre>"; $area = array( array('id'=>1,'area'=>'北京','pid'=>0), array('id'=>2,'area'=>'广西','pid'=>0), array('id'=>3,'area'=>'广东','pid'=>0), array('id'=>4,'area'=>'福建','pid'=>0), array('id'=>11,'area'=>'朝阳区','pid'=>1), array('id'=>12,'area'=>'海淀区','pid'=>1), array('id'=>21,'area'=>'南宁市','pid'=>2), array('id'=>45,'area'=>'福州市','pid'=>4), array('id'=>113,'area'=>'亚运村','pid'=>11), array('id'=>115,'area'=>'奥运村','pid'=>11), array('id'=>234,'area'=>'武鸣县','pid'=>21) ); function familytree($arr,$id){ $list = array(); while($id){ $flag = false; foreach($arr as $v){ if($v['id']==$id){ array_unshift($list,$v['area']); $id = $v['pid']; $flag = true; } } if(!$flag){ break; } } return $list; } print_r(familytree($area,113)); ?>
希望本文所述对大家的php程序设计有所帮助。
相关推荐
-
PHP设计模式之迭代器模式的深入解析
迭代器(Iterator)模式,它在一个很常见的过程上提供了一个抽象:位于对象图不明部分的一组对象(或标量)集合上的迭代.迭代有几种不同的具体执行方法:在数组属性,集合对象,数组,甚至一个查询结果集之上迭代. 在对象的世界里,迭代器模式要维持类似数组的功能,看作是一个非侵入性对象刻面(facet),Client类往往分离自真实对象实现,指iterator接口.只要有可能,我们可以给迭代器传送一个引用,代替将来可能发生变化的具体或抽象类.参与者:◆客户端(Client):引用迭代器模式的方法在一组
-
PHP迭代器实现斐波纳契数列的函数
复制代码 代码如下: class Fibonacci implements Iterator { private $previous = 1; private $current = 0; private $key = 0; public function current() { return $this->current; } public function key() { return $this->key; } pub
-
php5.5中类级别的常量使用介绍
不久前php刚发布了5.5的第一个稳定版,介绍了一个类级别的常量,名字是 `CLASS` 这个常量对所有的类有效,返回类的全名. 复制代码 代码如下: <?php namespace vendorpackage; class Foo { // ... } var_dump(Foo::CLASS); //上面脚本输出 string(18) "vendorpackageFoo". 为什么要使用它 我们为什么要使用一个这样的常量,当然不是像上面那个例子一样只是获得类的全名.我们
-
php5.5新数组函数array_column使用
PHP5.5发布了,其中增加了一个新的数组函数array_column,感觉不错的!但是低版本PHP要使用,得自己实现:参考地址:https://wiki.php.net/rfc/array_column 复制代码 代码如下: if(!function_exists('array_column')){ function array_column($input, $columnKey, $indexKey=null){ $columnKeyIsNumber = (
-
PHP迭代器的内部执行过程详解
复制代码 代码如下: class myIterator implements Iterator { private $position = 0; private $array = array( "first_element", "second_element", "last_element", ); public function __construct() { $this
-
php使用递归与迭代实现快速排序示例
复制代码 代码如下: /** * 递归法实现的快速排序 * @param $seq * @return array */function quicksort($seq){ if (count($seq) > 1) { $k = $seq[0]; $x = array(); $y = array(); $_size = count($seq); //do not use count($seq) in loop for. f
-
PHP5.5和之前的版本empty函数的不同之处
作为我最喜欢使用的函数之一,今天也终于发现这个函数的恶魔之处.洋洋洒洒写了以下代码,本地测试一切ok,到服务器上就SB了. 复制代码 代码如下: if(strlen($passwd) < 6 || empty($preg_replace("/\d/", "", $passwd))) { //do something} 大致的意思就是,密码必须大于6位切不能只由数字组成.找遍服务器日志,发现如下错误: 复制代码 代码如下: PHP Fatal error:
-
PHP5.5在windows安装使用memcached服务端的方法
PHP5.5 在windows下安装 memcached 的方法 下载服务端资源 http://download.csdn.net/detail/zsjangel/7104727 下载完成后,解压(我用的是 64位的,32位版本的我没有尝试过,应该没有问题),进入 DOS 命令行 先 cd 到解压后的目录 然后执行服务注册命令 memcached.exe -d install 卸载服务命令memcached.exe -d uninstall 然后启动服务memcached.exe -d star
-
如何把php5.3版本升级到php5.4或者php5.5
今天我们这篇php的技术文章主要为各位朋友们介绍如何使用yum进行安装php的5.4或者5.5版本.当然我们使用centos6.5作为我们的测试机器.其实非常简单,只要下面的两个命令就可以轻松的进行安装php的5.4版本了. 复制代码 代码如下: yum remove php php-bcmath php-cli php-common php-devel php-fpm php-gd php-imap php-ldap php-mbstring php-mcrypt php-mysql ph
-
PHP5.5迭代生成器用法实例详解
本文实例讲述了PHP5.5迭代生成器用法.分享给大家供大家参考,具体如下: PHP5.5引入了迭代生成器的概念,迭代的概念早就在PHP有了,但是迭代生成器是PHP的一个新特性,这跟python3中的迭代生成器类似,看看PHP5.5的迭代生成器如何定义. <?php function xrange($start, $end, $step = 1) { for ($i = $start; $i <= $end; $i += $step) { yield $i; } } foreach (xrang
随机推荐
- JQuery 获取多个select标签option的text内容(实例)
- vue滚动轴插件better-scroll使用详解
- c++ STL set_difference set_intersection set_union 操作
- Java OpenSSL生成的RSA公私钥进行数据加解密详细介绍
- Perl中处理时间的几个函数
- iOS 对当前webView进行截屏的方法
- Mysql带And关键字的多条件查询语句
- 实例讲解临时处理去重 80w 数据时夯死现象
- python字符串,数值计算
- Shell脚本批量添加扩展名的两种方法分享
- Javascript常用字符串判断函数代码分享
- php下批量挂马和批量清马代码
- C# DataSet的内容写成XML时如何格式化字段数据
- 灵活使用asp.net中的gridview控件
- Android dataBinding与ListView及事件详解
- 数据库管理中19个MySQL优化方法
- Android实现淘宝客户端倒计时界面
- tensorflow: variable的值与variable.read_value()的值区别详解
- Python实现将HTML转成PDF的方法分析
- Java类的加载连接和初始化实例分析