php递归函数(php递归函数遍历数组)

  • 1、如何理解php中的递归函数 (详细讲解)
  • 2、PHP 递归函数返回值问题
  • 3、php递归函数
  • 4、(用php递归函数输出)1-2+3-4+….+99-100结果。
  • 5、php 递归问题

递归其实就是“一个函数的自调用”

在这个“自调用”的过程中,必须要有一个变化的“参数”,当这个“参数”达到你的期望值的时候,终止该“自调用”过程

拿楼主的程序来说

demo($n)内部又有调用demo($n-1),构成了“自调用”

且,$n又有一个“期望值”,即是$n1,不满足此条件时,该自调用终止

即是说,最后一个执行的demo是demo($n9-1),其中$n9=2,然后返回为1(因为执行了return 1)

则$n9*demo($n9-1)即等于 2*demo(2-1),又等于2*1=2;

则$n8*demo($n8-1)即等于 3*demo(3-1),又等于3*2=6;

则$n7*demo($n7-1)即等于 4*demo(4-1),又等于4*6=24;

……

依次类推

这样想:

demo(1)是等于1,这个没有疑问吧?

然后demo(2)等于2*demo(1)=2*1=2

然后demo(3)等于3*demo(2)=3*2=6

……

一直到demo(10)

朋友,你这个函数逻辑有问题

1.

$countsort_sql

=

“SELECT

*

FROM

`{$db_table}newssort`

WHERE

`newssort_pid`

=

‘$pid'”;

这个的字段newssort_pid,如果第一次$pid可以查询出结果,那么下边

while($countsort_row

=

mysql_fetch_assoc($countsort_result)){

countSort($countsort_row[‘newssort_pid’]);

}

这里的参数$countsort_row[‘newssort_pid’]就是你第一次输入$pid,那么如果按照正常思路就永远循环

所以,我认为这里的countSort($countsort_row[‘newssort_pid’]);中$countsort_row[‘newssort_pid’]应该加以变化,比如+1

2.递归的判断条件if($countsort_number

0)

这个$countsort_number

如果有一次查询结果那么它永远是0,这是不对的。

修改函数如下,希望对你有所帮助。

function

countSort($pid)

{

global

$countsort_number;

$countsort_sql

=

“SELECT

*

FROM

`{$db_table}newssort`

WHERE

`newssort_pid`

=

‘$pid'”;

$countsort_result

=

mysql_query($countsort_sql)

or

die(‘数据库查询失败,请与管理员联系!’);

$num=mysql_num_rows($countsort_result);

$countsort_number

+=$num;

if(

$num

0)

{

while($countsort_row

=

mysql_fetch_assoc($countsort_result)){

countSort(++$countsort_row[‘newssort_pid’]);

}

mysql_free_result($countsort_result);

}

else

$abc=

$countsort_number;

}

递归其实就是“一个函数的自调用”

在这个“自调用”的过程中,必须要有一个变化的“参数”,当这个“参数”达到你的期望值的时候,终止该“自调用”过程

拿楼主的程序来说

demo($n)内部又有调用demo($n-1),构成了“自调用”

且,$n又有一个“期望值”,即是$n1,不满足此条件时,该自调用终止

即是说,最后一个执行的demo是demo($n9-1),其中$n9=2,然后返回为1(因为执行了return 1)

则$n9*demo($n9-1)即等于 2*demo(2-1),又等于2*1=2;

则$n8*demo($n8-1)即等于 3*demo(3-1),又等于3*2=6;

则$n7*demo($n7-1)即等于 4*demo(4-1),又等于4*6=24;

……

依次类推

这样想:

demo(1)是等于1,这个没有疑问吧?

然后demo(2)等于2*demo(1)=2*1=2

然后demo(3)等于3*demo(2)=3*2=6

……

一直到demo(10)

public function test($count,$i){

        if($i  100){

            return ;

        }

        if($i%2 == 1){

            $count = $count – ($i+1);

            test($count,$i+1);

        }else{

            $count = $count + ($i+1);

            test($count,$i+1);

        }

        

    }

    

    //执行

    $i = 1;

        $count = 1;

        test($count,$i);

        var_dump($count);exit;

第一,没有选择数据库,在连接数据库后添加mysql_select_db(“数据库名”);

第二、我感觉不代码不全吧,因为我拷下来看了一下,少一},当然上面那个没少,补充的少了。

第三、还有没看出这个$ii是干什么用的。

第四、没感觉$selec=0与不等于0输出有什么不同。

第五、以后最好是把html代码与程序分开写。

因为不知道需求,只能根据你的程序简单修改如下:

?php

function TreeMenu($selec) {

$Conn=mysql_connect(“localhost”,”kk”,”kk123″);

mysql_select_db(“数据库名”);

$ii=1;

$sql=”select * from tvmenu where bid=”.$selec;

$result=mysql_query($sql,$Conn);

$str = “”;

while($row =mysql_fetch_array($result)) {

if($selec=0) {

$str = ‘option value=”‘.$row[‘id’].'”‘.$row[‘name’].’/option ‘;

}else {

$str = ‘option value=”‘.$row[‘id’].'”‘.$row[‘name’].’/option ‘;

}

echo $str;

$ii++;

TreeMenu($row[‘id’]);

$ii–;

}

}

?

select name=”bid” id=”bid”

?php

TreeMenu(0);

?

/select

原创文章,作者:SPQC3,如若转载,请注明出处:https://www.506064.com/n/127127.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
SPQC3的头像SPQC3
上一篇 2024-10-03 23:13
下一篇 2024-10-03 23:13

相关推荐

  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python中capitalize函数的使用

    在Python的字符串操作中,capitalize函数常常被用到,这个函数可以使字符串中的第一个单词首字母大写,其余字母小写。在本文中,我们将从以下几个方面对capitalize函…

    编程 2025-04-29
  • Python导入数组

    本文将为您详细阐述Python导入数组的方法、优势、适用场景等方面,并附上代码示例。 一、numpy库的使用 numpy是Python中一个强大的数学库,其中提供了非常丰富的数学函…

    编程 2025-04-29
  • Python中set函数的作用

    Python中set函数是一个有用的数据类型,可以被用于许多编程场景中。在这篇文章中,我们将学习Python中set函数的多个方面,从而深入了解这个函数在Python中的用途。 一…

    编程 2025-04-29
  • 单片机打印函数

    单片机打印是指通过串口或并口将一些数据打印到终端设备上。在单片机应用中,打印非常重要。正确的打印数据可以让我们知道单片机运行的状态,方便我们进行调试;错误的打印数据可以帮助我们快速…

    编程 2025-04-29
  • 三角函数用英语怎么说

    三角函数,即三角比函数,是指在一个锐角三角形中某一角的对边、邻边之比。在数学中,三角函数包括正弦、余弦、正切等,它们在数学、物理、工程和计算机等领域都得到了广泛的应用。 一、正弦函…

    编程 2025-04-29
  • Python3定义函数参数类型

    Python是一门动态类型语言,不需要在定义变量时显示的指定变量类型,但是Python3中提供了函数参数类型的声明功能,在函数定义时明确定义参数类型。在函数的形参后面加上冒号(:)…

    编程 2025-04-29
  • Python返回数组:一次性搞定多种数据类型

    Python是一种多用途的高级编程语言,具有高效性和易读性的特点,因此被广泛应用于数据科学、机器学习、Web开发、游戏开发等各个领域。其中,Python返回数组也是一项非常强大的功…

    编程 2025-04-29
  • Python遍历集合中的元素

    本文将从多个方面详细阐述Python遍历集合中的元素方法。 一、for循环遍历集合 Python中,使用for循环可以遍历集合中的每个元素,代码如下: my_set = {1, 2…

    编程 2025-04-29
  • Python定义函数判断奇偶数

    本文将从多个方面详细阐述Python定义函数判断奇偶数的方法,并提供完整的代码示例。 一、初步了解Python函数 在介绍Python如何定义函数判断奇偶数之前,我们先来了解一下P…

    编程 2025-04-29

发表回复

登录后才能评论