前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >php 递归算法

php 递归算法

作者头像
全栈程序员站长
发布2022-09-06 13:48:26
发布2022-09-06 13:48:26
82100
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

通过递归实现阶乘

function multi($n){

代码语言:javascript
代码运行次数:0
复制
    if($n == 0){
        return 1 ;//终止递归
    }
    $value = $n * multi($n-1);
    return $value;
}

通过递归实现斐波那契数列
代码语言:javascript
代码运行次数:0
复制
function Fib($n){
    if($n ==1||$n==0){
        return 1;//终止递归
    }
    $value = Fib($n-1)+Fib($n-2);
    return $value;
}
echo Fib(6);
代码语言:javascript
代码运行次数:0
复制
$category = [
       [
           'id' =>1,
           'name'=>'男装',
           'pid'=>0,
       ],
       [
           'id'=>2,
            'name'=>'女装',
            'pid'=>0,

       ],
       [
           'id'=>3,
           'name'=>'男士外套',
           'pid' =>1,
           ],
         [
             'id' =>4,
             'name'=>'夹克',
             'pid' =>3,

         ],
         [
             'id'=>5,
             'name'=>'棉衣',
             'pid'=> 3,
         ],
];
代码语言:javascript
代码运行次数:0
复制
通过父类ID获取所有的子类
代码语言:javascript
代码运行次数:0
复制
function recursiveCategory($pid,$category){
    $data = [];
    foreach ($category as $item){
        if($item['pid']==$pid){
            $arr['id'] = $item['id'];
            $arr['name'] = $item['name'];
            $cate = recursiveCategory($item['id'],$category);
            if(!empty($cate)){
                $arr[] =$cate;
            }
            $data[] = $arr;
            unset($arr);
        }
    }
    return $data;
};
代码语言:javascript
代码运行次数:0
复制
通过子类获取所有的父类
代码语言:javascript
代码运行次数:0
复制
function getCategoryByChild($childId,$category){
    $data = [];
    foreach ($category as $item){
        if($item['id'] == $childId){
            $arr['id'] =$item['id'];
            $arr['name']= $item['name'];
            if($item['pid']!=0){
                $arr[] = getCategoryByChild($item['pid'],$category);
            }
            $data[]=$arr;
        }
    }
    return $data;
}

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/155306.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档