3種遍歷數(shù)組的方法:1、用for語句遍歷,語法“for($i=0;$i<數(shù)組長度;$i++){//循環(huán)代碼}”;2、用foreach語句遍歷,語法“foreach($arr as $k=>$v){//循環(huán)代碼}”;3、用while配合each()與list()進行遍歷,語法“while(list($k,$v)=each($arr)){//循環(huán)代碼}”。
前端(vue)入門到精通課程:進入學習
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
PHP中遍歷數(shù)組有三種常用的方法:
-
使用for語句循環(huán)遍歷數(shù)組;
-
使用foreach語句遍歷數(shù)組;
-
聯(lián)合使用list()、each()和while循環(huán)遍歷數(shù)組。
這三種方法中效率最高的是使用foreach語句遍歷數(shù)組。從PHP4開始就引入了foreach結(jié)構(gòu),是PHP中專門為遍歷數(shù)組而設(shè)計的語句,推薦大家使用。先分別介紹這幾種方法。
方法1:使用for語句遍歷
for循環(huán)會將控制循環(huán)次數(shù)的變量預先定義在for語句中,因此for循環(huán)語句能夠按照已知的循環(huán)次數(shù)進行循環(huán)操作,適用于明確知道腳本需要運行的次數(shù)的情況。
for 循環(huán)的語法格式如下:
for (初始化語句; 循環(huán)條件; 變量更新--自增或自減) { 語句塊; }
語句解析:
-
初始化語句(表達式1):主要是初始化一個變量值,用于設(shè)置一個計數(shù)器,即循環(huán)開始的值;該語句僅在第一次循環(huán)時執(zhí)行,以后都不會再執(zhí)行。
-
循環(huán)條件(表達式2):循環(huán)執(zhí)行的限制條件,用于控制是否執(zhí)行循環(huán)體中的代碼;如果條件為TRUE,則循環(huán)繼續(xù),如果條件為FALSE ,則循環(huán)結(jié)束,立即退出循環(huán)。
-
變量更新(表達式3):一個帶有自增或自減操作的表達式,循環(huán)每執(zhí)行一次,馬上修改計數(shù)器的值,以使循環(huán)條件逐漸變得“不成立”。
-
語句塊:條件判斷為真時,需要執(zhí)行的若干代碼。
示例
<?php header("Content-type:text/html;charset=utf-8"); $array= array(2,"數(shù)學","梨子",3.14,"榴蓮",12); var_dump($array); echo "遍歷數(shù)組:<br>"; for ($i=0; $i < count($array); $i++) { echo $i.":".$array[$i] . "<br/>"; } ?>
輸出結(jié)果:
方法2:使用foreach語句遍歷
foreach是專門為遍歷數(shù)組而設(shè)計的語句,是遍歷數(shù)組時常用的方法,在遍歷數(shù)組方面提供了很大的便利;PHP5后還可以遍歷對象(foreach僅能夠應(yīng)用于數(shù)組和對象)。
foreach語句遍歷數(shù)組與數(shù)組下標無關(guān),且可以用于不連續(xù)的索引數(shù)組和以字符串為下標的關(guān)聯(lián)數(shù)組。
foreach語句有兩種語法格式:
-
語法格式1:
foreach ($array as $value){ 語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中將當前數(shù)組的值賦給 $value。
示例
<?php header("Content-type:text/html;charset=utf-8"); $array= array(2,"數(shù)學","梨子",3.14,"榴蓮",12); var_dump($array); echo "遍歷數(shù)組:<br>"; foreach ($array as $val){ echo "值是:" . $val ; echo "<br/>"; } ?>
-
語法格式2:
foreach ($array as $key => $value){ 語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中會將當前數(shù)組的值賦給 $value,鍵名賦給 $key。
示例:
<?php header("Content-type:text/html;charset=utf-8"); $array= array(2,"數(shù)學","梨子",3.14,"榴蓮",12); var_dump($array); echo "遍歷數(shù)組:<br>"; foreach ($array as $key => $value) { echo "鍵名為:".$key.",鍵值為:".$value . "<br/>"; } ?>
說明:
foreach語句在每次循環(huán)時,數(shù)組內(nèi)部的指針會向前移一步,這樣在下一次循環(huán)中會得到下一個數(shù)組元素,直到遍歷到數(shù)組的末尾,停止遍歷并退出循環(huán)。
方法3:利用while語句+each()+list()遍歷
while循環(huán)語句是一種當型循環(huán)語句,先對循環(huán)條件進行判斷,當條件滿足,則執(zhí)行循環(huán)體,不滿足時則停止。
each() 函數(shù)返回數(shù)組中當前的鍵值并將數(shù)組指針向前移動。在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個元素或者當碰到數(shù)組結(jié)尾時停留在最后一個元素。
list() 函數(shù)用于在一次操作中給一組變量賦值。
while循環(huán)+each() 函數(shù)+ list() 函數(shù)可以遍歷數(shù)組,下面通過代碼示例來看看:
<?php header("Content-type:text/html;charset=utf-8"); $array= array(2,"數(shù)學","梨子",3.14,"榴蓮",12); var_dump($array); echo "遍歷數(shù)組:<br>"; while( list($key, $val) = each($array) ) { echo "$key => $val<br>"; } ?>
輸出結(jié)果:
說明:
while循環(huán)語句是一種當型
循環(huán)語句,先對循環(huán)條件進行判斷,當條件滿足,則執(zhí)行循環(huán)體,不滿足時則停止。
-
作用:反復執(zhí)行某一項操作,直到指定的條件不成立。
-
特點:先判斷表達式,當表達式結(jié)果為真時執(zhí)行相應(yīng)的語句。
while循環(huán)的一般形式為:
while(表達式){ //表達式為循環(huán)條件 PHP語句塊; //PHP語句塊為循環(huán)體 }
語句解析:
-
先計算“表達式”的值,當值為真時, 執(zhí)行循環(huán)體內(nèi)的“PHP語句塊”;
說明:“表達式”的計算結(jié)果是布爾類型( TRUE 或 FALSE)的,如果是其他類型的值也會自動轉(zhuǎn)換為布爾類型的值(因為PHP是弱語言類型,會根據(jù)變量的值,自動把變量轉(zhuǎn)換為正確的數(shù)據(jù)類型)。
“語句塊”就是由
{ }
包圍的一個或多個語句的集合;如果語句塊中只有一個語句,也可以省略{ }
。 -
執(zhí)行結(jié)束后,返回到表達式,再次計算表達式的值進行判斷,當表達式值為真,則繼續(xù)執(zhí)行“語句塊”……這個過程會一直重復
-
直到表達式的值為假時才跳出循環(huán),執(zhí)行while 下面的語句。
while語句的流程圖如下所示:
通?!氨磉_式”是使用比較運算符或者邏輯運算符計算后的值
注:“死循環(huán)”–無法靠自身的控制終止的循環(huán)
推薦:《PHP視頻教程》