遍歷數(shù)組的關(guān)鍵字有:1、for,能夠按照已知的循環(huán)次數(shù)進(jìn)行循環(huán)操作,適用于明確知道腳本需要運(yùn)行的次數(shù)的情況;2、foreach和as,foreach是專門為遍歷數(shù)組而設(shè)計(jì)的語句,foreach需要配合as關(guān)鍵字一起使用;3、while,配合each()與list()函數(shù)的使用可以遍歷數(shù)組;4、do,配合while、next()、key()、current()的使用可遍歷數(shù)組。
本教程操作環(huán)境:windows7系統(tǒng)、PHP8版、DELL G3電腦
php中遍歷數(shù)組的關(guān)鍵字有:for、foreach、while、do;其中do需要和while一起使用,組成“do-while”結(jié)構(gòu)才可循環(huán)功能。
下面一起來了解一下怎么使用這些關(guān)鍵字來遍歷數(shù)組。
for語句遍歷數(shù)組
for循環(huán)會(huì)將控制循環(huán)次數(shù)的變量預(yù)先定義在for語句中,因此for循環(huán)語句能夠按照已知的循環(huán)次數(shù)進(jìn)行循環(huán)操作,適用于明確知道腳本需要運(yùn)行的次數(shù)的情況。
for 循環(huán)的語法格式如下:
for (初始化語句; 循環(huán)條件; 變量更新--自增或自減) { 語句塊; }
語句解析:
-
初始化語句(表達(dá)式1):主要是初始化一個(gè)變量值,用于設(shè)置一個(gè)計(jì)數(shù)器,即循環(huán)開始的值;該語句僅在第一次循環(huán)時(shí)執(zhí)行,以后都不會(huì)再執(zhí)行。
-
循環(huán)條件(表達(dá)式2):循環(huán)執(zhí)行的限制條件,用于控制是否執(zhí)行循環(huán)體中的代碼;如果條件為TRUE,則循環(huán)繼續(xù),如果條件為FALSE ,則循環(huán)結(jié)束,立即退出循環(huán)。
-
變量更新(表達(dá)式3):一個(gè)帶有自增或自減操作的表達(dá)式,循環(huán)每執(zhí)行一次,馬上修改計(jì)數(shù)器的值,以使循環(huán)條件逐漸變得“不成立”。
-
語句塊:條件判斷為真時(shí),需要執(zhí)行的若干代碼。
示例
<?php header("Content-type:text/html;charset=utf-8"); $array= array(2,"數(shù)學(xué)","梨子",3.14,"榴蓮",12); for ($i=0; $i < count($array); $i++) { echo $array[$i] . "<br/>"; } ?>
輸出結(jié)果:
2 數(shù)學(xué) 梨子 3.14 榴蓮 12
foreach語句遍歷數(shù)組(foreach+as關(guān)鍵字)
foreach是專門為遍歷數(shù)組而設(shè)計(jì)的語句,是遍歷數(shù)組時(shí)常用的方法,在遍歷數(shù)組方面提供了很大的便利;PHP5后還可以遍歷對(duì)象(foreach僅能夠應(yīng)用于數(shù)組和對(duì)象)。
foreach語句遍歷數(shù)組與數(shù)組下標(biāo)無關(guān),且可以用于不連續(xù)的索引數(shù)組和以字符串為下標(biāo)的關(guān)聯(lián)數(shù)組。
foreach語句解析
下面我們先來了解一下foreach語句,該語句有兩種語法格式:
語法格式1:
foreach ($array as $value){ 語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中將當(dāng)前數(shù)組的值賦給 $value。
語法格式2:
foreach ($array as $key => $value){ 語句塊; }
遍歷給定的 $array 數(shù)組,在每次循環(huán)中會(huì)將當(dāng)前數(shù)組的值賦給 $value,鍵名賦給 $key。
說明:
foreach語句在每次循環(huán)時(shí),數(shù)組內(nèi)部的指針會(huì)向前移一步,這樣在下一次循環(huán)中會(huì)得到下一個(gè)數(shù)組元素,直到遍歷到數(shù)組的末尾,停止遍歷并退出循環(huán)。
示例:
<?php header("Content-type:text/html;charset=utf-8"); $array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); foreach ($array as $val){ echo "值是:" . $val ; echo "<br/>"; } echo "<br/>"; foreach ($array as $key => $value) { echo "鍵名為:".$key.",鍵值為:".$value . "<br/>"; } ?>
輸出結(jié)果:
while語句+each()+list()遍歷
each() 函數(shù)返回?cái)?shù)組中當(dāng)前的鍵值并將數(shù)組指針向前移動(dòng)。在執(zhí)行 each() 之后,數(shù)組指針將停留在數(shù)組中的下一個(gè)元素或者當(dāng)碰到數(shù)組結(jié)尾時(shí)停留在最后一個(gè)元素。
而list() 函數(shù)用于在一次操作中給一組變量賦值。
while循環(huán)+each() 函數(shù)+ list() 函數(shù)可以遍歷數(shù)組,下面通過代碼示例來看看:
<?php header("Content-type:text/html;charset=utf-8"); $array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); while( list($key, $val) = each($array) ) { echo "$key => $val<br>"; } ?>
輸出結(jié)果:
do-while語句+next()+key()+current()遍歷
PHP中每個(gè)數(shù)組都有一個(gè)內(nèi)部指針,即數(shù)組指針;該指針會(huì)指向數(shù)組中的某個(gè)元素(該元素就是數(shù)組的當(dāng)前元素,默認(rèn)最初指向數(shù)組中的第一個(gè)元素)。
-
next() 函數(shù)可以返回?cái)?shù)組內(nèi)部指針指向的下一個(gè)元素的值,當(dāng)沒有