本文目錄一覽:
- 1、關於PHP的for循環嵌套問題,需要講詳細點(請高手們仔細看題)
- 2、PHP的for循環嵌套問題,高手請進(需要講一些細節)
- 3、關於php中的foreach,while的嵌套循環問題?比如執行完sql後執行第一個while循環,然後在while循環裡邊在
- 4、關於PHP 中while嵌套循環問題,求解決
- 5、php 數組 循環嵌套
- 6、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-hant/n/298088.html