遍歷數組的關鍵字有:1、for,能夠按照已知的循環次數進行循環操作,適用於明確知道腳本需要運行的次數的情況;2、foreach和as,foreach是專門為遍歷數組而設計的語句,foreach需要配合as關鍵字一起使用;3、while,配合each()與list()函數的使用可以遍歷數組;4、do,配合while、next()、key()、 current()的使用可遍歷數組。
本教學操作環境:windows7系統、PHP8版、DELL G3電腦
php中遍歷陣列的關鍵字有: for、foreach、while、do;其中do需要和while一起使用,組成「do-while」結構才可循環功能。
下面一起來了解怎麼使用這些關鍵字來遍歷陣列。
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
foreach語句遍歷數組(foreach as關鍵字)
foreach是專門為遍歷數組而設計的語句,是遍歷數組時常用的方法,在遍歷數組方面提供了很大的便利;PHP5後還可以遍歷數組時常用的方法,在遍歷數組方面提供了很大的便利;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/>"; } ?>
輸出結果:
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>"; } ?>
輸出結果:
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)); ?>
輸出結果:
遍历结束后,数组指针会指向最后一个数组元素,我们可以使用reset()函数来重置数组指针,将数组中的内部指针重新指向第一个元素。
扩展知识:do-while 循环
do-while 循环和 while 循环非常相似,区别在于表达式的值是在每次循环结束时检查而不是开始时。和一般的 while 循环主要的区别是 do-while 的循环语句保证会执行一次(表达式的真值在每次循环结束后检查),然而在一般的 while 循环中就不一定了(表达式真值在循环开始时检查,如果一开始就为 false 则整个循环立即终止)。
do-while 循环只有一种语法:
<?php $i = 0; do { echo $i; } while ($i > 0); ?>
以上循环将正好运行一次,因为经过第一次循环后,当检查表达式的真值时,其值为 false($i 不大于 0)而导致循环终止。
推荐:《PHP视频教程》
以上是php中遍歷陣列的關鍵字是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!