递归算法 ---PHP

1,通过递归实现阶乘

function multi($n){

    if($n == 0){
        return 1 ;//终止递归
    }
    $value = $n * multi($n-1);
    return $value;
}

2,通过递归,实现斐波那契数列

function Fib($n){
    if($n ==1||$n==0){
        return 1;//终止递归
    }
    $value = Fib($n-1)+Fib($n-2);
    return $value;
}
echo Fib(6);
$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,
         ],
];

3,通过父类ID获取所有的子类

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;
};

 

4, 通过子类获取所有父类

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;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值