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&amp;&amp;mysql)五
Oct 09 PHP
php中看实例学正则表达式
Dec 25 PHP
网页游戏开发入门教程三(简单程序应用)
Nov 02 PHP
使用XDebug调试及单元测试覆盖率分析
Jan 27 PHP
zend api扩展的php对象的autoload工具
Apr 18 PHP
兼容ie6浏览器的php下载文件代码分享
Jul 14 PHP
php json_encode()函数返回json数据实例代码
Oct 10 PHP
php array_merge函数使用需要注意的一个问题
Mar 30 PHP
PHP5.3新特性小结
Feb 14 PHP
PHP数字前补0的自带函数sprintf 和number_format的用法(详解)
Feb 06 PHP
PHP实现普通hash分布式算法简单示例
Aug 06 PHP
laravel框架模型和数据库基础操作实例详解
Jan 25 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中call_user_func_array()函数的用法演示
2012/02/05 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
浅析PHP中的 inet_pton 网络函数
2019/12/16 PHP
js循环改变div颜色具体方法
2013/06/25 Javascript
Checbox的操作含已选、未选及判断代码
2013/11/07 Javascript
详解原生JavaScript实现jQuery中AJAX处理的方法
2016/05/10 Javascript
js仿微信公众平台打标签功能
2017/04/08 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
seajs中模块依赖的加载处理实例分析
2017/10/10 Javascript
基于jQuery实现定位导航位置效果
2017/11/15 jQuery
Postman模拟发送带token的请求方法
2018/03/31 Javascript
vue-cli webpack配置文件分析
2019/05/20 Javascript
JavaScript交换两个变量方法实例
2019/11/25 Javascript
JavaScript常用8种数组去重代码实例
2020/09/09 Javascript
在Python中使用列表生成式的教程
2015/04/27 Python
win10 64bit下python NLTK安装教程
2018/09/19 Python
Python3实现的反转单链表算法示例
2019/03/08 Python
使用python代码进行身份证号校验的实现示例
2019/11/21 Python
对Pytorch中Tensor的各种池化操作解析
2020/01/03 Python
基于Python和C++实现删除链表的节点
2020/07/06 Python
详解Python中的路径问题
2020/09/02 Python
Python QT组件库qtwidgets的使用
2020/11/02 Python
Expedia丹麦:全球领先的旅游网站
2018/03/18 全球购物
办公室文书岗位职责
2013/12/16 职场文书
十八届三中全会学习方案
2014/02/16 职场文书
药店促销活动总结
2014/07/10 职场文书
交通安全责任书范本
2014/07/24 职场文书
关于晚自习早退的检讨书
2014/09/13 职场文书
党员自我评价范文2015
2015/03/03 职场文书
会计做账心得体会
2016/01/22 职场文书
大学生奖学金获奖感言(范文)
2019/08/15 职场文书
Python离线安装openpyxl模块的步骤
2021/03/30 Python
Python排序算法之插入排序及其优化方案详解
2021/06/11 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang
Windows Server 2008 修改远程登录端口以及配置防火墙
2022/04/28 Servers
Linux中sftp常用命令整理
2022/06/28 Servers