php递归使用示例

 这篇文章主要介绍了php递归使用示例(php递归函数),包括递归获得角色ID字符串、递归获取级联角色信息数组、通过父角色的id获取子角色信息,需要的朋友可以参考下

 代码如下:
//递归获得角色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();
}
 

时间: 2025-01-21 17:34:03

php递归使用示例的相关文章

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

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

sqlserver中存储过程的递归调用示例

递归式指代码片段调用自身的情况:危险之处在于:如果调用了自身一次,那么如何防止他反复地调用自身.也就是说提供递归检验来保证适当的时候可以跳出. 以阶层为例子说存储过程中递归的调用. 递归 CREATE PROC [dbo].[usp_spFactorial] @InputValue INT, @OuputValue INT OUTPUT AS BEGIN DECLARE @InValue INT; DECLARE @OutValue INT; IF(@InputValue!=1) BEGIN S

Vuejs——(8~13)组件(从不懂到精通)

本篇资料来于官方文档: http://cn.vuejs.org/guide/components.html 本文是在官方文档的基础上,更加细致的说明,代码更多更全. 简单来说,更适合新手阅读 (二十五)组件的定义 ①组件的作用: [1]扩展HTML元素,封装可重用的代码: [2]组件是自定义元素,Vuejs的编译器可以为其添加特殊的功能: [3]某些情况下,组件可以是原生HTML元素的形式,以is的方式扩展.   ②写一个标准的组件: 分为以下几步: [1]挂载组件的地方,需要是Vue实例所渲染

深入理解PHP几个算法:PHP冒泡、PHP二分法、PHP求素数、PHP乘法表_php技巧

PHP几个算法整理 涉及到以下几个示例.PHP冒泡PHP二分法PHP求素数PHP乘法表 PHP冒泡法 示例 复制代码 代码如下: //PHP冒泡  从小到大function maopao(&$arr){  if(!empty($arr))  {    for($i=0;$i<count($arr);$i++)      {        if($arr[$i]>$arr[$j])        {          //开始交换          $temp = $arr[$i];  

C语言及程序设计[套餐]课程主页

课程链接:http://edu.csdn.net/combo/detail/30,提供所有的视频和课件下载. 三部分的课程主页,提供了为每一课时配套的自测.示例下载,以及程序阅读.程序填空.实践项目.参考解答等.这是本课最具价值的部分,是保证学习效果的根本保证.请在看视频基础上,完成相关的实践. 这三部分的课程主页的链接分别是:[初步篇].[提高篇].[进阶篇] 本课QQ交流群:528582245 学员列表:高 强 本  马莱(马荣超) 邓帅 杨婕 王琨   刘亦鑫  Frank  金叶  刘树

用java

问题描述 用java 给定一个十进制整数n.输出n的各位数字之和 格式输入这个整数n.输出一个整数表示答案 解决方案 求具体代码,谢谢谢谢谢一个 解决方案二: java中的FontC++还是Java,职场新人的困惑Java中反射性能测试 解决方案三: 参考高斯算1到n的和,用一个for循环就可以了 首尾想加 解决方案四: import java.util.Scanner; public class Test1 { public static void main(String[] args) {

Python 递归函数

简述 从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事!故事是什么呢?『从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事!故事是什么呢?』-- 这也许是最经典(口耳相传)的童谣了,充分展现了自然语言的魅力及其无限可能性,可以永远以这种递归的方式继续下去... 俄文艺理论家车尔尼雪夫斯基曾说过: 艺术来源于生活,却又高于生活! 生活如此,编程世界亦如此 - 没有生活原形或者现象,何来程序创作的源头和灵感?正因此,Python 中出现了这样一种函数 - 递归函数. 大多数情况下,

《C语言及程序设计进阶》网络课程主页

在CSDN学院开出的网络系列课程<C语言及程序设计初步>已经完成. 系列中的第二季<C语言及程序设计提高>的所有资源建设已经全部完成. 这是第三季<C语言及程序设计进阶>.视频资源链接点击打开链接 [公告]本课学员名单及QQ群公告,请到套餐主页查看.有兄弟,不孤单,一起营造学习氛围. [重要通知1]自测题由于问卷星服务规则变化,不能看到答题情况,现转到"蓝墨云班课"中.加入方法:到mosoteach.cn免费注册账号,选择"用邀请码加入班课

javascript中的 object 和 function小结_javascript技巧

在学习过传统的面向对象语言后,如 java c++,转学 javascript 却有点不适应,特别是 javascript 中所谓的 object(对象) function(函数),有时候会被搞晕.于是乎简单整理了下面的一些概念性的东西,方便学习和理解,会结合一点 java面向对象的知识加以说明. 先了解几个概念: 1.首先 Object 在 ECMAScripe 中是指什么,在 ECMAScripe 中有5种简单数据类型:Undefined,Null,Boolean,Number,String