在php中,for迴圈能遍歷陣列,語法為「for($i=0;$i<count($array);$i++){ //處理陣列元素的語句塊;} 」。使用for遍歷陣列的限制:1、所遍歷的陣列必須是索引陣列(即下標為數位的陣列),不能是關聯陣列(下標為字串的陣列);2、索引陣列的下標必須是連續的整數。
php入門到就業線上直播課:進入學習
Apipost = Postman + Swagger + Mock + Jmeter 超好用的API偵錯工具:
本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦
php中for迴圈能遍歷陣列。
for迴圈是幾乎所有語言都可以用的一種遍歷陣列的方式,php語言也不例外。
一、for迴圈語句的結構解析
for迴圈會將控制迴圈次數的變數預先定義在for語句中,因此for迴圈語句能夠按照已知的迴圈次數進行迴圈操作,適用於明確知道指令碼需要執行的次數的情況。
for 迴圈的語法格式如下:
for (初始化語句; 迴圈條件; 變數更新--自增或自減) {
語句塊;
}
登入後複製
for迴圈語句可以拆解為4個部分:()
號中的三個表示式和{}
中的「語句塊」,下面我們來分析一下。
語句解析:
初始化語句(表示式1):主要是初始化一個變數值,用於設定一個計數器,即迴圈開始的值;該語句僅在第一次迴圈時執行,以後都不會再執行。
迴圈條件(表示式2):迴圈執行的限制條件,用於控制是否執行迴圈體中的程式碼;如果條件為TRUE,則迴圈繼續,如果條件為FALSE ,則迴圈結束,立即退出迴圈。
變數更新(表示式3):一個帶有自增或自減操作的表示式,迴圈每執行一次,馬上修改計數器的值,以使迴圈條件逐漸變得「不成立」。
語句塊:條件判斷為真時,需要執行的若干程式碼。
上面的描述是不是有點繞,我們來看看for迴圈語句的執行流程圖,可以更直觀的瞭解for迴圈的執行過程:
二、for迴圈語句遍歷陣列
下面我們先通過程式碼範例來具體看看如何遍歷,然後通過分析程式碼來詳細瞭解。
<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮");
var_dump($array);
echo "for迴圈遍歷輸出:<br/><br/>";
for ($i=0; $i < count($array); $i++) {
echo $array[$i] . "<br/>";
}
?>
登入後複製
輸出:
程式碼分析:
初始化語句為$i=0
:範例的陣列是一個索引陣列,陣列的下標預設從0開始,因此迴圈開始的值要為0。
迴圈條件$i <count($array)
:count()函數用於計算陣列長度,則迴圈條件為$i < 陣列長度
,因為當$i = 陣列長度
時,$i
已經超出了索引範圍(索引範圍是0
~ 陣列長度-1
)。
變數更新$i++
:每次迴圈後,變數$i
自動增加1,直到$i = 陣列長度
時,因為$i超出了索引範圍,以使迴圈條件不成立,然後退出迴圈。
echo $array[$i] . "<br/>"
:每回圈一次,就根據$i值--陣列下標
,來輸出陣列元素。
說明:使用for迴圈遍歷陣列的形式是不會改變陣列的內部指標的。
注意:使用for遍歷陣列存在以下限制:
1、所遍歷的陣列必須是索引陣列(即下標為數位的陣列),不能是關聯陣列(下標為字串的陣列)
如下列程式碼
<?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];
}
?>
登入後複製
在執行時會報錯,這說明for不適合用於關聯陣列的遍歷
2、for遍歷的陣列既要滿足是索引陣列,同時下標又要是連續的整數,如果不是連續的整數則會發生提示
<?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迴圈遍歷陣列必須是索引陣列而且下標必須是連續的。
推薦:《》《》
以上就是php中for迴圈能不能遍歷陣列的詳細內容,更多請關注TW511.COM其它相關文章!