php遍歷一個陣列的三種方法是什麼

2022-09-06 22:00:34

3種遍歷陣列的方法:1、用for語句遍歷,語法「for($i=0;$i<陣列長度;$i++){//迴圈程式碼}」;2、用foreach語句遍歷,語法「foreach($arr as $k=>$v){//迴圈程式碼}」;3、用while配合each()與list()進行遍歷,語法「while(list($k,$v)=each($arr)){//迴圈程式碼}」。

前端(vue)入門到精通課程:進入學習

本教學操作環境:windows7系統、PHP8.1版、DELL G3電腦

PHP中遍歷陣列有三種常用的方法:

  • 使用for語句迴圈遍歷陣列;

  • 使用foreach語句遍歷陣列;

  • 聯合使用list()、each()和while迴圈遍歷陣列。

這三種方法中效率最高的是使用foreach語句遍歷陣列。從PHP4開始就引入了foreach結構,是PHP中專門為遍歷陣列而設計的語句,推薦大家使用。先分別介紹這幾種方法。

方法1:使用for語句遍歷

for迴圈會將控制迴圈次數的變數預先定義在for語句中,因此for迴圈語句能夠按照已知的迴圈次數進行迴圈操作,適用於明確知道指令碼需要執行的次數的情況。

for 迴圈的語法格式如下:

for (初始化語句; 迴圈條件; 變數更新--自增或自減) {
    語句塊;   
}

語句解析:

  • 初始化語句(表示式1):主要是初始化一個變數值,用於設定一個計數器,即迴圈開始的值;該語句僅在第一次迴圈時執行,以後都不會再執行。

  • 迴圈條件(表示式2):迴圈執行的限制條件,用於控制是否執行迴圈體中的程式碼;如果條件為TRUE,則迴圈繼續,如果條件為FALSE ,則迴圈結束,立即退出迴圈。

  • 變數更新(表示式3):一個帶有自增或自減操作的表示式,迴圈每執行一次,馬上修改計數器的值,以使迴圈條件逐漸變得「不成立」。

  • 語句塊:條件判斷為真時,需要執行的若干程式碼。

範例

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"數學","梨子",3.14,"榴蓮",12);
var_dump($array);
echo "遍歷陣列:<br>";
for ($i=0; $i < count($array); $i++) { 
    echo $i.":".$array[$i] . "<br/>";
} 
?>

輸出結果:

1.png

方法2:使用foreach語句遍歷

foreach是專門為遍歷陣列而設計的語句,是遍歷陣列時常用的方法,在遍歷陣列方面提供了很大的便利;PHP5後還可以遍歷物件(foreach僅能夠應用於陣列和物件)。

foreach語句遍歷陣列與陣列下標無關,且可以用於不連續的索引陣列和以字串為下標的關聯陣列。

foreach語句有兩種語法格式:

  • 語法格式1:

foreach ($array as $value){
    語句塊;
}

遍歷給定的 $array 陣列,在每次迴圈中將當前陣列的值賦給 $value。

範例

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"數學","梨子",3.14,"榴蓮",12);
var_dump($array);
echo "遍歷陣列:<br>";
foreach ($array as $val){
    echo "值是:" . $val ;
    echo "<br/>";
}
?>

2.png

  • 語法格式2:

foreach ($array as $key => $value){
    語句塊;
}

遍歷給定的 $array 陣列,在每次迴圈中會將當前陣列的值賦給 $value,鍵名賦給 $key。

範例:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"數學","梨子",3.14,"榴蓮",12);
var_dump($array);
echo "遍歷陣列:<br>";
foreach ($array as $key => $value) { 
    echo "鍵名為:".$key.",鍵值為:".$value . "<br/>";
} 
?>

3.png

說明:

foreach語句在每次迴圈時,陣列內部的指標會向前移一步,這樣在下一次迴圈中會得到下一個陣列元素,直到遍歷到陣列的末尾,停止遍歷並退出迴圈。

方法3:利用while語句+each()+list()遍歷

while迴圈語句是一種當型迴圈語句,先對迴圈條件進行判斷,當條件滿足,則執行迴圈體,不滿足時則停止。

each() 函數返回陣列中當前的鍵值並將陣列指標向前移動。在執行 each() 之後,陣列指標將停留在陣列中的下一個元素或者當碰到陣列結尾時停留在最後一個元素。

list() 函數用於在一次操作中給一組變數賦值。

while迴圈+each() 函數+ list() 函數可以遍歷陣列,下面通過程式碼範例來看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array(2,"數學","梨子",3.14,"榴蓮",12);
var_dump($array);
echo "遍歷陣列:<br>";
while( list($key, $val) = each($array) ) {
    echo "$key => $val<br>";
}
?>

輸出結果:

4.png

說明:

while迴圈語句是一種當型迴圈語句,先對迴圈條件進行判斷,當條件滿足,則執行迴圈體,不滿足時則停止。

  • 作用:反覆執行某一項操作,直到指定的條件不成立。

  • 特點:先判斷表示式,當表示式結果為真時執行相應的語句。

while迴圈的一般形式為:

while(表示式){    //表示式為迴圈條件
    PHP語句塊;  //PHP語句塊為迴圈體
}

語句解析:

  • 先計算「表示式」的值,當值為真時, 執行迴圈體內的「PHP語句塊」;

    說明:「表示式」的計算結果是布林型別( TRUE 或 FALSE)的,如果是其他型別的值也會自動轉換為布林型別的值(因為PHP是弱語言型別,會根據變數的值,自動把變數轉換為正確的資料型別)。

    「語句塊」就是由{ }包圍的一個或多個語句的集合;如果語句塊中只有一個語句,也可以省略{ }

  • 執行結束後,返回到表示式,再次計算表示式的值進行判斷,當表示式值為真,則繼續執行「語句塊」……這個過程會一直重複

  • 直到表示式的值為假時才跳出迴圈,執行while 下面的語句。

while語句的流程圖如下所示:

1.png

通常「表示式」是使用比較運運算元或者邏輯運運算元計算後的值

注:「死迴圈」--無法靠自身的控制終止的迴圈

推薦:《》

以上就是php遍歷一個陣列的三種方法是什麼的詳細內容,更多請關注TW511.COM其它相關文章!