php中for迴圈能不能遍歷陣列

2022-11-17 22:01:15

在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迴圈的執行過程:

1.jpg

二、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/>";
} 
?>
登入後複製

輸出:

1.png

程式碼分析:

  • 初始化語句為$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];
}
?>
登入後複製

2.png

在執行時會報錯,這說明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>";
}
?>
登入後複製

3.png

因此for迴圈遍歷陣列必須是索引陣列而且下標必須是連續的。

推薦:《》《》

以上就是php中for迴圈能不能遍歷陣列的詳細內容,更多請關注TW511.COM其它相關文章!