php嵌套類
① php是什麼
PHP,是英文超級文本預處理語言Hypertext Preprocessor的縮寫。PHP 是一種 HTML 內嵌式的語言,是一種在伺服器端執行的嵌入HTML文檔的腳本語言
② PHP的for循環嵌套問題,高手請進(需要講一些細節)
for循環的執行原理:
for循環的參數有(初始值;判斷條件;更新循環變數表達式) 三者均不是必須的,若三者不完整則必須在適當的時候手動調用break命令終止循環,否則循環將一直持續下去成為死循環
執行過程為:
首先判斷初始值是否滿足判斷條件,如滿足則開始循環,若不滿足則直接跳過循環因此如下的循環是不會被執行的:
for($i=0;$i<0;$i++)
然後執行一次循環體(包裹在for後面大括弧里的代碼)
使用更新循環變數表達式更新變數
使用判斷條件進行判斷,若不滿足則終止循環,若滿足則再次執行循環體
因此如下循環會被執行5次
for($i=0;$i<5;$i++)
for循環嵌套:
for循環嵌套的話將優先執行內循環,再執行外循環,如下:
//外循環開始
for($i=0;$i<10;$i++)
{
//這里是外循環的循環體
for($j=0;$j<20;$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:wampwwwzhlx3.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數組嵌套問題
前面的問題既然找到了就不再贅述,我是直接看你最後一個問題的。
如何將帶有中文的二維數組 轉化為JSON輸出呢?
使用JSON作為提交和接收的數據格式時字元都採用UTF8編碼處理,當我們的頁面編碼和資料庫編碼不是採用UTF8的時候,就極容易出現中文亂碼的問題。解決辦法自然是在用js或者PHP處理JSON數據的時候都採用UTF8的形式
$data="JSON中文";
$newData=iconv("GB2312","UTF-8//IGNORE",$data); //轉utf8
//ignore的意思是忽略轉換時的錯誤,如果沒有ignore參數,所有該字元後面的字元都不會被保存。
④ PHP while嵌套,求助!!!!!
問題就在查詢語句上$db->query("select * from tbl_class where c_up_upid=$c_upid");
兩級循環執行的都是同一個查詢語句,第二級讀取了第一個結果,第三級讀取了從第二個開始到最後一個結果。
第二級第二次循環的時候指針已經指向最後一個結果了,所以就跳出了。
想要不一樣,建議你修改一下語句,
第二層循環用 $db1->query("select * from tbl_class where c_up_upid=$c_upid");
第三層用 $db2->query("select * from tbl_class where c_up_upid=$c_upid");
試試
⑤ PHP怎麼處理多層嵌套If判斷
還是視乎程序的結構
在邏輯式優化、嚴謹的前提下
層層判斷運行速度會比較快的
如果是面向對象或者習慣模塊式編程的話,可以把各種邏輯式組合成單一參數(例如整數)
再用平行的邏輯判斷(switch、object等)寫出來
具有共性的代碼段寫成function或對象的方法,在各個模塊按需調用
其中兩種常見例子是
1.參數是整數(由位運算得出),分支時位運算反向判斷
2.類的設計模式
這種情況很適合計算參數和執行參數由不同的人寫代碼
⑥ 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中如何實現
DIV嵌套示例:
<div[^>]*>[sS]*?(((?'open'<div[^>]*>)[sS]*?)+((?'-open'</div>)[sS]*?)+)*(?(open)(?!))</div>
<div>我是一層</div>
<div>
<divclass="test">
我是二層div
<divclass="test">我是三層div</div>
<span>我是span呀</span><ul>我是ul呀</ul>
</div>
</div>
對於HTML的解析,最好使用phpQuery類來實現,這個類是基於jQuery語法的。
⑧ 新手請教兄台 PHP嵌套查詢mysql語句,謝謝
既然你是學習為目的那還是自己研究吧,我告訴你的話你就學不到什麼東西了。
第一個問題很簡單,先根據名字獲取相應的記錄,然後獲取parent_id等於記錄id的記錄就行了。
第二個不好辦,sort欄位的設計很有意思,但是沒有實際意義。
你的數據都是手工創建的吧?比如我要把樹木類修改為物品類的子類,很難用sql去完成sort欄位的修改。所以你還是再想想吧。
增刪改查,查是最後一個。如果你的表結構設計連增刪改都很難實現,查不查的都沒有意義。
⑨ 關於PHP 中while嵌套循環問題,求解決
資料庫