php 递归

递归是一种函数调用自身的机制。
递归必须要有边界条件,也就是递归出口(退出递归)
递归前进段和递归返回段,也就是最后得到的值
当边界条件不满足时,递归前进;当边界条件(递归出口)满足时,递归返回。
PHP的递归非常消耗性能,故而在PHP中尽量避免使用递归

1..写一个求和的函数 输入参数n,可以求到1+2+3+...+n的和

1     function sum($n) {
2     if($n>1) {
3     return $n+sum($n-1);
4     } else {
5     return 1;
6     }
7     }
8     echo sum(100);   //1到100的和

2.一个多维数组,如果单元值为数字,则把其值修改为原来的 2 倍. 如 array(1,2,'b',array(3,'c',array(4,5))); 变成 array(2,4,'b',array(6,'c',array(8,10)));

 1 $arr = array(1,2,3,array('c',4,array(5,6)));
 2 function multArr($arr) {
 3 foreach($arr as $k=>$v) {
 4 //如果值是int 则加倍
 5 if(is_int($v)) {
 6 $arr[$k] = $v*2;
 7 }else if(is_array($v) ){
 8 //如果值是数组
 9 $arr[$k] = multArr($v);
10 }
11 }
12 return $arr;
13 }
14 print_r(multArr($arr));

3.写递归函数,计算所有单元的和

 1 $arr = array(1,2,3,array(4,array(5,6)));
 2 function sumHe($arr) {
 3 $i = 0;
 4 foreach($arr as $k=>$v) {
 5 if(is_int($v)) {
 6 $i = $i+$v;
 7 } else if(is_array($v)) {
 8 $i +=sumHe($v);
 9 }
10 }
11 return $i;
12 }
13 echo sumHe($arr);

 

转载于:https://www.cnblogs.com/myzxh/p/9753151.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值