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/zh-hant/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中set函數的作用

    Python中set函數是一個有用的數據類型,可以被用於許多編程場景中。在這篇文章中,我們將學習Python中set函數的多個方面,從而深入了解這個函數在Python中的用途。 一…

    編程 2025-04-29
  • Python導入數組

    本文將為您詳細闡述Python導入數組的方法、優勢、適用場景等方面,並附上代碼示例。 一、numpy庫的使用 numpy是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定義函數判斷奇偶數的方法,並提供完整的代碼示例。 一、初步了解Python函數 在介紹Python如何定義函數判斷奇偶數之前,我們先來了解一下P…

    編程 2025-04-29
  • Python實現計算階乘的函數

    本文將介紹如何使用Python定義函數fact(n),計算n的階乘。 一、什麼是階乘 階乘指從1乘到指定數之間所有整數的乘積。如:5! = 5 * 4 * 3 * 2 * 1 = …

    編程 2025-04-29

發表回復

登錄後才能評論