php递归使用示例(php递归函数)


Posted in PHP onFebruary 14, 2014
//递归获得角色ID字符串
function explodeRole($roleObj, &$resultStr){
  if(0 < count($roleObj->childRoleObjArr)){
    foreach($roleObj->childRoleObjArr as $childRoleObj){
      if('' == $resultStr){
        $resultStr .= "{$childRoleObj->id}";
      }else{
        $resultStr .= ", {$childRoleObj->id}";
      }
      explodeRole($childRoleObj, $resultStr);
    }
  }
}

//递归获取级联角色信息数组
function makeRoleRelation(&$roleObjArr){
  foreach($roleObjArr as $item){
    $item->childRoleObjArr = getRoleObjArrByParentId($item->id);
    if(0 < count($item->childRoleObjArr)){
      makeRoleRelation($item->childRoleObjArr);
    }
  }
}

//通过父角色的id获取子角色信息  
function getRoleObjArrByParentId($parentid){
  $operCOGPSTRTSysRole = new COGPSTRTSysRole();
  $operCOGPSTRTSysRole->setColumn($operCOGPSTRTSysRole->getAllColumn());
  $operCOGPSTRTSysRole->setWhere("parentroleid={$parentid}");
  $roleObjArr = $operCOGPSTRTSysRole->convResult2ObjArr($operCOGPSTRTSysRole->selectTable());
  return isset($roleObjArr)?$roleObjArr:array();
}

php的递归函数用法

一个函数在它的函数体内调用它自身称为递归调用。这种函数称为递归函数。这对于程序员来说,通常有很高的实用价值,常用来将复杂的问题分解为简单的并相同的情况,反复做这种处理直到问题解决。

用递归函数与不用递归函数的区别

示例一:使用静态变量

function test(){
  static $dig=0;
  if($dig++<10){
    echo $dig;
    test();
  }
}
test();//12345678910

示例二:使用递归函数和循环实现字符串逆转排列

function unreverse($str){
  for($i=1;$i<=strlen($str);$i++){
    echo substr($str,-$i,1);
  }
}
unreverse("abcdefg");//gfedcbc

function reverse($str){
  if(strlen($str)>0){
    reverse(substr($str,1));
    echo substr($str,0,1);
    return;
  }
}
reverse("abcdefg");//gfedcbc

递归函数很多时候我们可以循环替代,建议当我们不能用循环替代时再用,因为用循环我们更容易理解,更不容易出错。

php递归函数 php支付递归函数,递归函数就是调用自己本身,这些函数特别适用于浏览动态数据结构,例如树和列表。
几乎没有web应用程序要求使用复杂的数据结构

<?php
function reversr_r($str)
{
if (strlen($str)>0)
reverse_r(substr($str,1));
echo substr($str,0,1);
return;
}
?>

<?php
function reverse_i($str)
{
for($i=1;$i<=strlen($str);$i++)
{
echo substr($str,-$i,1);
}
}

这个程序清单中实现两个函数,这两个函数都可以相反的顺序打印字符串的内容
函数reversr_r是通过递归实现的,而函数reverse_i()是通过循环实现的

PHP 相关文章推荐
在同一窗体中使用PHP来处理多个提交任务
May 08 PHP
MySql中正则表达式的使用方法描述
Jul 30 PHP
PHP命名空间(namespace)的动态访问及使用技巧
Aug 18 PHP
ThinkPHP文件上传实例教程
Aug 22 PHP
Linux系统下PHP-FPM的安装和配置教程
Aug 17 PHP
PHP7安装Redis扩展教程【Linux与Windows平台】
Sep 30 PHP
Yii核心验证器api详解
Nov 23 PHP
PHP获取二叉树镜像的方法
Jan 17 PHP
PHP排序算法之简单选择排序(Simple Selection Sort)实例分析
Apr 20 PHP
Laravel框架实现定时Task Scheduling例子
Oct 22 PHP
PHP图像处理 imagestring添加图片水印与文字水印操作示例
Feb 06 PHP
php让json_encode不自动转义斜杠“/”的方法
Apr 27 PHP
php根据isbn书号查询amazon网站上的图书信息的示例
Feb 13 #PHP
使用php记录用户通过搜索引擎进网站的关键词
Feb 13 #PHP
php中simplexml_load_string使用实例分享
Feb 13 #PHP
使用php显示搜索引擎来的关键词
Feb 13 #PHP
php根据日期判断星座的函数分享
Feb 13 #PHP
php的hash算法介绍
Feb 13 #PHP
php去除字符串换行符示例分享
Feb 13 #PHP
You might like
PHP中通过HTTP_USER_AGENT判断是否为手机移动终端的函数代码
2013/02/14 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
destoon文章模块调用企业会员资料的方法
2014/08/22 PHP
php+ajax实现无刷新分页
2015/11/18 PHP
thinkphp在低版本Nginx 下支持PATHINFO的方法分享
2016/05/27 PHP
Windows Server 2008 R2和2012中PHP连接MySQL过慢的解决方法
2016/07/02 PHP
PHP7 标准库修改
2021/03/09 PHP
给页面渲染时间加速 干掉Dom Level 0 Event
2012/12/19 Javascript
PHP使用方法重载实现动态创建属性的get和set方法
2014/11/17 Javascript
bootstrap常用组件之头部导航实现代码
2017/04/20 Javascript
微信小程序左滑删除功能开发案例详解
2018/11/12 Javascript
js中对象与对象创建方法的各种方法
2019/02/27 Javascript
NodeJs crypto加密制作token的实现代码
2019/11/15 NodeJs
Vue中keep-alive组件作用详解
2020/02/04 Javascript
python实现爬虫下载漫画示例
2014/02/16 Python
Python内置函数Type()函数一个有趣的用法
2015/02/18 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
python实现多线程抓取知乎用户
2016/12/12 Python
浅谈python内置变量-reversed(seq)
2017/06/21 Python
浅析Python中return和finally共同挖的坑
2017/08/18 Python
python批量修改文件编码格式的方法
2018/05/31 Python
Python简单读写Xls格式文档的方法示例
2018/08/17 Python
详解Django-auth-ldap 配置方法
2018/12/10 Python
Python连接Mysql进行增删改查的示例代码
2020/08/03 Python
HTML5 Web 存储详解
2016/09/16 HTML / CSS
什么是表空间(tablespace)和系统表空间(System tablespace)
2013/02/25 面试题
学生党员思想汇报范文
2014/01/09 职场文书
大学四年的个人自我评价
2014/01/14 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
城市精细化管理实施方案
2014/03/04 职场文书
学校组织向国旗敬礼活动方案(中小学适用)
2014/09/27 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
2014年测量员工作总结
2014/12/12 职场文书
2015年全国科普日活动总结
2015/03/23 职场文书
Java数据结构之链表相关知识总结
2021/06/18 Java/Android
vue使用element-ui按需引入
2022/05/20 Vue.js