php遍歷陣列的四種方法是什麼

2022-04-12 22:00:33

四種方法:1、用「for($i=0;$i<陣列長度;$i++)」;2、用「foreach($arr as $v)」;3、用while配合each()與list();4、用「do-while」配合next()、key()與current()。

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

方法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);
for ($i=0; $i < count($array); $i++) { 
    echo $array[$i] . "<br/>";
} 
?>

輸出結果:

2
數學
梨子
3.14
榴蓮
12

方法2:使用foreach語句遍歷

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

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

foreach語句解析

下面我們先來了解一下foreach語句,該語句有兩種語法格式:

語法格式1:

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

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

語法格式2:

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

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

說明:

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

範例:

<?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/>";
} 
?>

輸出結果:

1.png

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

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

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

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

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮");
while( list($key, $val) = each($array) ) {
    echo "$key => $val<br>";
}
?>

輸出結果:

2.png

方法4:利用do-while語句+next()+key()+current()遍歷

PHP中每個陣列都有一個內部指標,即陣列指標;該指標會指向陣列中的某個元素(該元素就是陣列的當前元素,預設最初指向陣列中的第一個元素)。

  • next() 函數可以返回陣列內部指標指向的下一個元素的值,當沒有更多元素時返回 FALSE。

  • key() 函數用來獲得陣列中當前元素的鍵名。

  • current() 函數返回陣列的當前元素的鍵值。

利用do-while迴圈+next()+key()+current()可以遍歷陣列,獲取陣列元素的鍵名和鍵值。

下面通過程式碼範例來具體看看:

<?php
header("Content-type:text/html;charset=utf-8");
$array= array("香蕉","蘋果","梨子","橙子","橘子","榴蓮");
do{
	 echo key($array)." => ".current($array)."<br>";
}while(next($array));
?>

輸出結果:

3.png

遍歷結束後,陣列指標會指向最後一個陣列元素,我們可以使用reset()函數來重置陣列指標,將陣列中的內部指標重新指向第一個元素。

推薦:《》

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