您現在的位置是:首頁 >php教程 >PHP教程十一 循環網站首頁php教程
PHP教程十一 循環
PHP 循環
循環執行代碼塊指定的次數,或者當指定的條件為真時循環執行代碼塊。
在 PHP 中,提供了下列循環語句:
while - 只要指定的條件成立,則循環執行代碼塊
do...while - 首先執行一次代碼塊,然后在指定的條件成立時重復這個循環
for - 循環執行代碼塊指定的次數
foreach - 根據數組中每個元素來循環代碼塊
while 循環
while 循環將重復執行代碼塊,直到指定的條件不成立。
語法
while (條件) { 要執行的代碼; }
實例
下面的實例首先設置變量 i 的值為 1 ($i=1;)。
然后,只要 i 小于或者等于 5,while 循環將繼續運行。循環每運行一次,i 就會遞增 1:
<html>
<body>
<?php
$i=1;
while($i<=5)
{
echo "The number is " . $i . "<br>";
$i++;
}
?>
</body>
</html>
輸出:
The number is 1 The number is 2 The number is 3 The number is 4 The number is 5
do...while 語句
do...while 語句會至少執行一次代碼,然后檢查條件,只要條件成立,就會重復進行循環。
語法
do { 要執行的代碼; } while (條件);
實例
下面的實例首先設置變量 i 的值為 1 ($i=1;)。
然后,開始 do...while 循環。循環將變量 i 的值遞增 1,然后輸出。先檢查條件(i 小于或者等于 5),只要 i 小于或者等于 5,循環將繼續運行:
<html>
<body>
<?php
$i=1;
do
{
$i++;
echo "The number is " . $i . "<br>";
}
while ($i<=5);
?>
</body>
</html>
輸出:
The number is 2 The number is 3 The number is 4 The number is 5 The number is 6
for 循環
for 循環用于您預先知道腳本需要運行的次數的情況。語法
for (初始值; 條件; 增量) { 要執行的代碼; }
參數:
初始值:主要是初始化一個變量值,用于設置一個計數器(但可以是任何在循環的開始被執行一次的代碼)。條件:循環執行的限制條件。如果為 TRUE,則循環繼續。如果為 FALSE,則循環結束。增量:主要用于遞增計數器(但可以是任何在循環的結束被執行的代碼)。
注釋:上面的初始值和增量參數可為空,或者有多個表達式(用逗號分隔)。
實例
下面的實例定義一個初始值為 i=1 的循環。只要變量 i 小于或者等于 5,循環將繼續運行。循環每運行一次,變量 i 就會遞增 1:
<?php
for ($i=1; $i<=5; $i++)
{
echo "數字為 " . $i . PHP_EOL;
}
?>
輸出:
數字為 1 數字為 2 數字為 3 數字為 4 數字為 5
foreach 循環
foreach 循環用于遍歷數組。
語法
foreach ($array as $value){ 要執行代碼; }
每進行一次循環,當前數組元素的值就會被賦值給 $value 變量(數組指針會逐一地移動),在進行下一次循環時,您將看到數組中的下一個值。
foreach ($array as $key => $value) { 要執行代碼; }
每一次循環,當前數組元素的鍵與值就都會被賦值給 $key 和 $value 變量(數字指針會逐一地移動),在進行下一次循環時,你將看到數組中的下一個鍵與值。
實例
下面的實例演示了一個輸出給定數組的值的循環:
<?php
$x=array("Google","Baidu","Taobao");
foreach ($x as $value)
{
echo $value . PHP_EOL;
}
?>
輸出:
Google Baidu Taobao
下面的實例演示了一個輸出給定數組鍵與值的循環:
<?php
$x=array(1=>"Google", 2=>"Baidu", 3=>"Taobao");
foreach ($x as $key => $value)
{
echo "key 為 " . $key . ",對應的 value 為 ". $value . PHP_EOL;
}
?>
輸出:
key 為 1,對應的 value 為 Google key 為 2,對應的 value 為 Baidu key 為 3,對應的 value 為 Taobao
使用for循環,實現冒泡排序:
<?php
$arr = array(5,3,6,2,8,10);
for($i = count($arr)-1;$i>=0;$i--){
for($j = 0 ; $j < $i ; $j++){
if($arr[$j+1] > $arr[$j] ){
$aa = $arr[$j+1];
$arr[$j+1] = $arr[$j];
$arr[$j] = $aa;
}
}
}
print_r($arr);
?>