您現(xiàn)在的位置是:首頁(yè) >php教程 >PHP教程十一 循環(huán)網(wǎng)站首頁(yè)php教程
PHP教程十一 循環(huán)
PHP 循環(huán)
循環(huán)執(zhí)行代碼塊指定的次數(shù),或者當(dāng)指定的條件為真時(shí)循環(huán)執(zhí)行代碼塊。
在 PHP 中,提供了下列循環(huán)語(yǔ)句:
while - 只要指定的條件成立,則循環(huán)執(zhí)行代碼塊
do...while - 首先執(zhí)行一次代碼塊,然后在指定的條件成立時(shí)重復(fù)這個(gè)循環(huán)
for - 循環(huán)執(zhí)行代碼塊指定的次數(shù)
foreach - 根據(jù)數(shù)組中每個(gè)元素來(lái)循環(huán)代碼塊
while 循環(huán)
while 循環(huán)將重復(fù)執(zhí)行代碼塊,直到指定的條件不成立。
語(yǔ)法
while (條件) { 要執(zhí)行的代碼; }
實(shí)例
下面的實(shí)例首先設(shè)置變量 i 的值為 1 ($i=1;)。
然后,只要 i 小于或者等于 5,while 循環(huán)將繼續(xù)運(yùn)行。循環(huán)每運(yùn)行一次,i 就會(huì)遞增 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 語(yǔ)句
do...while 語(yǔ)句會(huì)至少執(zhí)行一次代碼,然后檢查條件,只要條件成立,就會(huì)重復(fù)進(jìn)行循環(huán)。
語(yǔ)法
do { 要執(zhí)行的代碼; } while (條件);
實(shí)例
下面的實(shí)例首先設(shè)置變量 i 的值為 1 ($i=1;)。
然后,開(kāi)始 do...while 循環(huán)。循環(huán)將變量 i 的值遞增 1,然后輸出。先檢查條件(i 小于或者等于 5),只要 i 小于或者等于 5,循環(huán)將繼續(xù)運(yùn)行:
<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 循環(huán)
for 循環(huán)用于您預(yù)先知道腳本需要運(yùn)行的次數(shù)的情況。語(yǔ)法
for (初始值; 條件; 增量) { 要執(zhí)行的代碼; }
參數(shù):
初始值:主要是初始化一個(gè)變量值,用于設(shè)置一個(gè)計(jì)數(shù)器(但可以是任何在循環(huán)的開(kāi)始被執(zhí)行一次的代碼)。條件:循環(huán)執(zhí)行的限制條件。如果為 TRUE,則循環(huán)繼續(xù)。如果為 FALSE,則循環(huán)結(jié)束。增量:主要用于遞增計(jì)數(shù)器(但可以是任何在循環(huán)的結(jié)束被執(zhí)行的代碼)。
注釋:上面的初始值和增量參數(shù)可為空,或者有多個(gè)表達(dá)式(用逗號(hào)分隔)。
實(shí)例
下面的實(shí)例定義一個(gè)初始值為 i=1 的循環(huán)。只要變量 i 小于或者等于 5,循環(huán)將繼續(xù)運(yùn)行。循環(huán)每運(yùn)行一次,變量 i 就會(huì)遞增 1:
<?php
for ($i=1; $i<=5; $i++)
{
echo "數(shù)字為 " . $i . PHP_EOL;
}
?>
輸出:
數(shù)字為 1 數(shù)字為 2 數(shù)字為 3 數(shù)字為 4 數(shù)字為 5
foreach 循環(huán)
foreach 循環(huán)用于遍歷數(shù)組。
語(yǔ)法
foreach ($array as $value){ 要執(zhí)行代碼; }
每進(jìn)行一次循環(huán),當(dāng)前數(shù)組元素的值就會(huì)被賦值給 $value 變量(數(shù)組指針會(huì)逐一地移動(dòng)),在進(jìn)行下一次循環(huán)時(shí),您將看到數(shù)組中的下一個(gè)值。
foreach ($array as $key => $value) { 要執(zhí)行代碼; }
每一次循環(huán),當(dāng)前數(shù)組元素的鍵與值就都會(huì)被賦值給 $key 和 $value 變量(數(shù)字指針會(huì)逐一地移動(dòng)),在進(jìn)行下一次循環(huán)時(shí),你將看到數(shù)組中的下一個(gè)鍵與值。
實(shí)例
下面的實(shí)例演示了一個(gè)輸出給定數(shù)組的值的循環(huán):
<?php
$x=array("Google","Baidu","Taobao");
foreach ($x as $value)
{
echo $value . PHP_EOL;
}
?>
輸出:
Google Baidu Taobao
下面的實(shí)例演示了一個(gè)輸出給定數(shù)組鍵與值的循環(huán):
<?php
$x=array(1=>"Google", 2=>"Baidu", 3=>"Taobao");
foreach ($x as $key => $value)
{
echo "key 為 " . $key . ",對(duì)應(yīng)的 value 為 ". $value . PHP_EOL;
}
?>
輸出:
key 為 1,對(duì)應(yīng)的 value 為 Google key 為 2,對(duì)應(yīng)的 value 為 Baidu key 為 3,對(duì)應(yīng)的 value 為 Taobao
使用for循環(huán),實(shí)現(xiàn)冒泡排序:
<?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);
?>