首頁 > 後端開發 > PHP問題 > php遍歷一個陣列的三種方法是什麼

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

青灯夜游
發布: 2023-03-16 19:36:01
原創
2658 人瀏覽過

3種遍歷數組的方法:1、用for語句遍歷,語法「for($i=0;$i$v){//循環代碼}」;3、用while配合each()與list()進行遍歷,語法「while(list($k, $v)=each($arr)){//循環代碼}」。

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

本教學操作環境: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/>";
} 
?>
登入後複製

輸出結果:

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

#方法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/>";
}
?>
登入後複製

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

  • #語法格式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/>";
} 
?>
登入後複製

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

說明:

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

輸出結果:

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

說明:

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

  • 作用:反复执行某一项操作,直到指定的条件不成立。

  • 特点:先判断表达式,当表达式结果为真时执行相应的语句。

while循环的一般形式为:

while(表达式){    //表达式为循环条件
    PHP语句块;  //PHP语句块为循环体
}
登入後複製

语句解析:

  • 先计算“表达式”的值,当值为真时, 执行循环体内的“PHP语句块”;

    说明:“表达式”的计算结果是布尔类型( TRUE 或 FALSE)的,如果是其他类型的值也会自动转换为布尔类型的值(因为PHP是弱语言类型,会根据变量的值,自动把变量转换为正确的数据类型)。

    “语句块”就是由{ }包围的一个或多个语句的集合;如果语句块中只有一个语句,也可以省略{ }

  • 执行结束后,返回到表达式,再次计算表达式的值进行判断,当表达式值为真,则继续执行“语句块”……这个过程会一直重复

  • 直到表达式的值为假时才跳出循环,执行while 下面的语句。

while语句的流程图如下所示:

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

通常“表达式”是使用比较运算符或者逻辑运算符计算后的值

注:“死循环”--无法靠自身的控制终止的循环

推荐:《PHP视频教程

以上是php遍歷一個陣列的三種方法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板