在php中嵌套循環和語句,循環結構的嵌套語句怎麼執行

本文目錄一覽:

關於PHP的for循環嵌套問題,需要講詳細點(請高手們仔細看題)

第一個:

for($i=1;$i=9;$i++){

echo $j,’ ‘; //第一次進來,$j 未定義,所以警告

for($j=1;$j=$i;$j++){ //進到這來,$j =1 已定義的$j 且$j ++ $j這成了2 ,之後類似

}

}

第二個:

for($i=1;$i=9;$i++){

for($j=1;$j=$i;$j++){

} //執行完內層for循環,$j=1 然後$j++ 這成2,之後類似

echo $j,’ ‘;

echo’br/’;

}

第三個:

for($i=1;$i=9;$i++){

//echo $i,’……’;

for($j=1;$j=$i;$j++){

echo $j,’ ‘; //$j 在內層for中輸出,由於內層的$i從1遞增到9,$j輸出的個數就是$i,$j 每次遞增1 所以就輸出你那的結果

}

}

for($j=1;$j=$i;$j++){ for循環 先定義變數$j=1,然後判斷$j=$i是還否為真,為真則執行{}的內容,執行完在執行$j++,在判斷$j=$i, 直到判斷為假時退出。

PHP的for循環嵌套問題,高手請進(需要講一些細節)

for循環的執行原理:

for循環的參數有(初始值;判斷條件;更新循環變數表達式) 三者均不是必須的,若三者不完整則必須在適當的時候手動調用break命令終止循環,否則循環將一直持續下去成為死循環

執行過程為:

首先判斷初始值是否滿足判斷條件,如滿足則開始循環,若不滿足則直接跳過循環因此如下的循環是不會被執行的:

for($i=0; $i0; $i++)

然後執行一次循環體(包裹在for後面大括弧里的代碼)

使用更新循環變數表達式更新變數

使用判斷條件進行判斷,若不滿足則終止循環,若滿足則再次執行循環體

因此如下循環會被執行5次

for($i=0; $i5; $i++)

for循環嵌套:

for循環嵌套的話將優先執行內循環,再執行外循環,如下:

//外循環開始

for($i=0; $i10; $i++)

{

    //這裡是外循環的循環體

    for($j=0; $j20; $j++)//內循環開始

    {

        //這裡是內循環的循環體

     }//內循環結束

 }//外循環結束

當開始執行循環時,首先執行外循環的循環體(其中包括了內循環),此時$i=0;在此過程中當執行到內循環處時開始執行內循環,$j由0遞增到19;執行完20遍內循環後外循環結束,$i++;此時$i=1,再次開始執行外循環。

綜上,外循環體共執行10次,內循環體執行20(內循環本身的重複次數)*10(每次外循環均執行20次內循環)=200次

多重嵌套按此方法逐層分析

代碼分析:

for($i=1;$i=9;$i++){

    echo $j,’ ‘;

    for($j=1;$j=$i;$j++){

    }

}

按上述方法進行分析的話,執行步驟如下:

$i=1代入外循環,循環開始

執行echo $j,此時未定義$j,輸出 Notice: Undefined variable: j in C:\wamp\www\zhlx3.php on line 3

執行至內循環處,內循環開始,$j=1代入循環

內循環體什麼都沒做,循環執行1次(最終$j=2;$i=1$j;內循環終止)

$i++;$i此時等於2;再次開始外循環

echo $j;此時$j的變數還等於2;因此輸出2

執行至內循環處,內循環開始,$j重新被初始化為1代入循環

內循環體什麼都沒做,循環執行2次(最終$j=3;$i=2$j;內循環終止)

$i++;$i此時等於3;再次開始外循環

echo $j;此時$j的變數還等於3;因此輸出3

執行至內循環處,內循環開始,$j重新被初始化為1代入循環

內循環體什麼都沒做,循環執行3次(最終$j=4;$i=3$j;內循環終止)

$i++;$i此時等於4;再次開始外循環

。。。。。以此類推

第二段代碼和第三段代碼與第一段的不同之處僅在於內外循環的輸出語句不同,按照此方法分析即可得到輸出結果

循環演算法是基礎演算法之一,原理簡單但是分析比較麻煩,尤其涉及到嵌套。在剛開始學的時候經常搞不懂這是很正常的。解決的方法就是靜下心來,把自己當做是一台速度極慢的計算機,按照for循環的執行過程逐條語句瀏覽,很快就可以弄明白的,祝你成功!

關於php中的foreach,while的嵌套循環問題?比如執行完sql後執行第一個while循環,然後在while循環裡邊在

兩個while用的$conn連接要不一樣才行

$conn1=mysql_connect(…);

$conn2=mysql_connect(…);

$sql1第一個循環語句

$sql2第二個循環語句

mysql_query($sql1,$conn1)

while($rows=mysql_fetch_array(…)){

mysql_query($sql2,$conn1);

while($rows=mysql_fetch_array(…)){

…….

}

}

關鍵是建立不同的連接對象如,$conn1和$conn2,不能用一種連接對象,讓資料庫查詢while裡面套while

關於PHP 中while嵌套循環問題,求解決

資料庫

PHP處理部分

public function index(){

//我這裡用的thinkPHP框架,不知道你是原生還是什麼,就簡單說一下思路。

$tb_type = M(“Type”);

$tb_product = M(“Products”);//這裡我是實例化我的數據表,說通俗點就是連接資料庫,指定某個表

$types = $tb_type-select();   //這裡是在我的products表中進行select查詢,而且得到的$types是一個二維數組

foreach($types as $key=$type){  //這裡foreache循環遍歷$types,為了取到$type得id號,以此作為條件去產品信息表中進行查詢

$where[“typeid”] = $type[“typeid”];   //這裡是where條件,如果是原生的就相當於$where=”where typeid = “.$type[“id”];

$products = $tb_product-where($where)-select();   //這個sql語句轉換為原生是$sql = “select * from tb_products where typeid=”.$value[‘typeid’];

$types[$key][“products”] = $products;//出現你那種情況的主要原因是數組的重構這裡,我把得到的產品信息的二維數組與先得到的類別信息的數組進行組合

                                     //因為$types是一個二維數組,鍵值默認為0  1  2   3內部數組的鍵值是資料庫欄位的值,這裡我將緊挨著資料庫

                                     //欄位的值給內部的一維數組添加一個除了資料庫欄位的值之外的products鍵,是為了你能夠順利的循環輸出在模板頁面

}

$this-assign(“info”,$types);

$this-display();

}

最終的結果

php 數組 循環嵌套

問題的關鍵在這個函數的使用上 mysql_fetch_array,循環完一遍以後數據指針已經指到最後一條數據了,第二次循環的時候就取不到數據了,每次循環結束要把數據指針重新指回首條數據。具體如下:

?php

require_once(“conn.php”);

$sql=”SELECT * FROM big_class”;

$query=mysql_query($sql);

$sqls=”SELECT * FROM small_class”;

$queryq=mysql_query($sqls);

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

echo $row[‘class_name’].”br”;

while($rowr=mysql_fetch_array($queryq)){

echo $rowr[‘sclass_name’];

}

mysql_data_seek($queryq,0)//就是這裡了 呵呵

}

?

php 嵌套循環

首先是外面的循環用了$dosql-GetArray() 然后里面的循環又用了 $dosql-GetArray($row[‘id’])。$dosql是同一個吧,同一個就會在裡面循環的時候把外面要循環的東西替換掉了。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/298088.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-28 12:17
下一篇 2024-12-28 12:17

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • Python3支持多行語句

    Python3是一種高級編程語言,開發人員可以輕鬆地使用該語言編寫簡單到複雜的代碼。其中Python3支持多行語句,方便開發人員編寫複雜的代碼,提高代碼的可讀性和可維護性。 一、使…

    編程 2025-04-29
  • Python for循環語句列印九九乘法表

    本篇文章將詳細介紹如何使用Python的for循環語句列印九九乘法表。列印九九乘法表是我們初學Python時經常練習的一項基礎操作,也是編寫Python程序的基本能力之一。 1、基…

    編程 2025-04-29
  • Python中while語句和for語句的區別

    while語句和for語句是Python中兩種常見的循環語句,它們都可以用於重複執行一段代碼。然而,它們的語法和適用場景有所不同。本文將從多個方面詳細闡述Python中while語…

    編程 2025-04-29
  • Vue TS工程結構用法介紹

    在本篇文章中,我們將從多個方面對Vue TS工程結構進行詳細的闡述,涵蓋文件結構、路由配置、組件間通訊、狀態管理等內容,並給出對應的代碼示例。 一、文件結構 一個好的文件結構可以極…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Python中自定義函數必須有return語句

    自定義函數是Python中最常見、最基本也是最重要的語句之一。在Python中,自定義函數必須有明確的返回值,即必須要有return語句。本篇文章將從以下幾個方面對此進行詳細闡述。…

    編程 2025-04-29
  • Python程序的三種基本控制結構

    控制結構是編程語言中非常重要的一部分,它們指導著程序如何在不同的情況下執行相應的指令。Python作為一種高級編程語言,也擁有三種基本的控制結構:順序結構、選擇結構和循環結構。 一…

    編程 2025-04-29
  • Python中升序排列的if語句

    本文將為大家介紹Python中升序排列的if語句。首先,我們來看一下如何實現。 if a > b: a, b = b, a if b > c: b, c = c, b …

    編程 2025-04-29
  • Python輸出語句用法介紹

    Python作為一種高級編程語言,為編程帶來了極大的便利和快捷。而輸出語句則是Python編程中不可缺少的一部分,它能夠讓我們看到程序運行的結果、判斷程序的正確性和優化程序等。本文…

    編程 2025-04-28

發表回復

登錄後才能評論