在php中,for循環(huán)能遍歷數(shù)組,語(yǔ)法為“for($i=0;$i<count($array);$i++){ //處理數(shù)組元素的語(yǔ)句塊;} ”。使用for遍歷數(shù)組的限制:1、所遍歷的數(shù)組必須是索引數(shù)組(即下標(biāo)為數(shù)字的數(shù)組),不能是關(guān)聯(lián)數(shù)組(下標(biāo)為字符串的數(shù)組);2、索引數(shù)組的下標(biāo)必須是連續(xù)的整數(shù)。
php入門到就業(yè)線上直播課:進(jìn)入學(xué)習(xí)
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API調(diào)試工具:點(diǎn)擊使用
本教程操作環(huán)境:windows7系統(tǒng)、PHP8.1版、DELL G3電腦
php中for循環(huán)能遍歷數(shù)組。
for循環(huán)是幾乎所有語(yǔ)言都可以用的一種遍歷數(shù)組的方式,php語(yǔ)言也不例外。
一、for循環(huán)語(yǔ)句的結(jié)構(gòu)解析
for循環(huán)會(huì)將控制循環(huán)次數(shù)的變量預(yù)先定義在for語(yǔ)句中,因此for循環(huán)語(yǔ)句能夠按照已知的循環(huán)次數(shù)進(jìn)行循環(huán)操作,適用于明確知道腳本需要運(yùn)行的次數(shù)的情況。
for 循環(huán)的語(yǔ)法格式如下:
for (初始化語(yǔ)句; 循環(huán)條件; 變量更新--自增或自減) { 語(yǔ)句塊; }
for循環(huán)語(yǔ)句可以拆解為4個(gè)部分:()
號(hào)中的三個(gè)表達(dá)式和{}
中的“語(yǔ)句塊”,下面我們來(lái)分析一下。
語(yǔ)句解析:
-
初始化語(yǔ)句(表達(dá)式1):主要是初始化一個(gè)變量值,用于設(shè)置一個(gè)計(jì)數(shù)器,即循環(huán)開始的值;該語(yǔ)句僅在第一次循環(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)條件逐漸變得“不成立”。
-
語(yǔ)句塊:條件判斷為真時(shí),需要執(zhí)行的若干代碼。
上面的描述是不是有點(diǎn)繞,我們來(lái)看看for循環(huán)語(yǔ)句的執(zhí)行流程圖,可以更直觀的了解for循環(huán)的執(zhí)行過(guò)程:
二、for循環(huán)語(yǔ)句遍歷數(shù)組
下面我們先通過(guò)代碼示例來(lái)具體看看如何遍歷,然后通過(guò)分析代碼來(lái)詳細(xì)了解。
<?php header("Content-type:text/html;charset=utf-8"); $array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮"); var_dump($array); echo "for循環(huán)遍歷輸出:<br/><br/>"; for ($i=0; $i < count($array); $i++) { echo $array[$i] . "<br/>"; } ?>
輸出:
代碼分析:
-
初始化語(yǔ)句為
$i=0
:示例的數(shù)組是一個(gè)索引數(shù)組,數(shù)組的下標(biāo)默認(rèn)從0開始,因此循環(huán)開始的值要為0。 -
循環(huán)條件
$i <count($array)
:count()函數(shù)用于計(jì)算數(shù)組長(zhǎng)度,則循環(huán)條件為$i < 數(shù)組長(zhǎng)度
,因?yàn)楫?dāng)$i = 數(shù)組長(zhǎng)度
時(shí),$i
已經(jīng)超出了索引范圍(索引范圍是0
~數(shù)組長(zhǎng)度-1
)。 -
變量更新
$i++
:每次循環(huán)后,變量$i
自動(dòng)增加1,直到$i = 數(shù)組長(zhǎng)度
時(shí),因?yàn)?i超出了索引范圍,以使循環(huán)條件不成立,然后退出循環(huán)。 -
echo $array[$i] . "<br/>"
:每循環(huán)一次,就根據(jù)$i值--數(shù)組下標(biāo)
,來(lái)輸出數(shù)組元素。
說(shuō)明:使用for循環(huán)遍歷數(shù)組的形式是不會(huì)改變數(shù)組的內(nèi)部指針的。
注意:使用for遍歷數(shù)組存在以下限制:
1、所遍歷的數(shù)組必須是索引數(shù)組(即下標(biāo)為數(shù)字的數(shù)組),不能是關(guān)聯(lián)數(shù)組(下標(biāo)為字符串的數(shù)組)
如下列代碼
<?php header("Content-type:text/html;charset=utf-8"); $arr=array('brand'=>'google','email'=>'Gmail','WebBrowser'=>'Chrome','phone'=>'Android'); for($i=1;$i<=count($arr);$i++){ echo $arr[$i]; } ?>
在運(yùn)行時(shí)會(huì)報(bào)錯(cuò),這說(shuō)明for不適合用于關(guān)聯(lián)數(shù)組的遍歷
2、for遍歷的數(shù)組既要滿足是索引數(shù)組,同時(shí)下標(biāo)又要是連續(xù)的整數(shù),如果不是連續(xù)的整數(shù)則會(huì)發(fā)生提示
<?php header("Content-type:text/html;charset=utf-8"); $array=array(1=>'Google',5=>'Chrome',7=>'Android',9=>'Youtube',12=>'Gmail'); //print_r($array); for($i=0;$i<count($array);$i++){ echo $array[$i],"<br>"; } ?>
因此for循環(huán)遍歷數(shù)組必須是索引數(shù)組而且下標(biāo)必須是連續(xù)的。
推薦:《PHP面試題大匯總(收藏)》《php視頻教程》