PHP For 迴圈LOGIN

PHP For 迴圈

迴圈執行程式碼區塊指定的次數,或當指定的條件為真時循環執行程式碼區塊。

for 迴圈

語法

#for (初始值; 條件; 增量)
{
要執行的程式碼;
}

參數:

• 初始值:是初始化賦值,可以同時賦值多個程式碼。

• 條件:在每次循環開始前求值。如果值為 TRUE,則繼續循環,執行巢狀的循環語句。如果值為 FALSE,則終止迴圈。

• 增量:在每次循環之後被求值。

註解:上面的初始值和增量參數可為空,或有多個表達式(以逗號分隔)。

實例

下面的實例定義一個初始值為 i=1 的迴圈。只要變數 i 小於或等於 5,循環將繼續運作。循環每運行一次,變數 i 就會增加1:

<html>
<body>
<?php
for ($i=1; $i<=5; $i++)
{
echo "The number is" . $i . "<br>";
}
?>
</body>
</html>

輸出:

The number is 1
The number is 2
The number is 3
The number is 4
The number is 5

前面章節我們學習了數組,而for循環是一個單純的計數型循環,而索引數組的下標為整數的數值。 因此,我們可以透過for迴圈來遍歷索引數組。

<?php
   //声明一个数组,值为1到10
     $num = array(1,2,3,4,5,6,7,8,9,10);
   //按照索引数组的特点,下标从0开始。所以1的下标为0,10的下标为9
     echo $num[0].'<br />';
     echo $num[9].'<br />';
   //我们可以得到数组中元素的总个数,为10
     echo count($num);
   //遍历这个索引数组的话,我们就可以定义一个变量为$i
   //$i 的值为0,从0开始
   //可以设定一个循环条件为:$i 在下标的(9)最大值之内循环
    for($i = 0; $i < count($num); $i++)
    {
     echo $num[$i].'<br />';
    }
?>

透過上面的例子,我們就把陣列進行了循環。

因為下標是從0開始的,定義$i=0 。每次循環的時候讓$i 加1 ,但是必須要小於10,因為陣列下標的最大值為9。


foreach 迴圈

#foreach 迴圈用於遍歷陣列。

語法

foreach ($array as $value)
{
要執行程式碼;
}

array 代表一個數組變量,在每次迴圈執行時,每個元素的值會被暫時賦給變數 value, 要執行的程式碼 語句每次得到的 value 的值都不一樣。

另一個語法

foreach ($array as $key => $value)
{
要執行程式碼;
}

key 代表數組的下標,value 代表數組的值,那麼對於數字下標數組來說,每次循環中 key 的值就是從0開始子增長的數字。

實例

下面的實例示範了一個輸出給定陣列的值的循環:

<html>
<body>
<?php
$x=array("one","two","three");
foreach ($x as $value)
{
echo $value . "<br>";
}
?>
</body>
</html>

輸出:

one
two
three

我們可以透過foreach遍歷連續的索引數組

<html>
<body>
<?php
$cou = array(
        0 => '中国',
        100 => '美国',
        20=> '韩国',
        300 => '德国',
       );

foreach($cou as $key => $value)
{
echo $key . '------' . $value .'<br/>';
}
?>
</body>
</html>

 輸出:

0------中國 
100 ------美國 
20------韓國 
300------德國

若陣列裡面還有陣列, 該怎麼遍歷循環呢?

<?php
$data = array(
               0 => array(
                  '中国' => 'china',
                  '美国' => 'usa',
                  '德国' => ' Germany',
                 ),
               1 => array(
                  '湖北' => 'hubei',
                  '河北' => 'hebei',
                  '山东' => 'shandong',
                  '山西' => 'sanxi',
                 ),
             );
//注:我们在使用foreach循环时,第一次循环将键为0和键为1的两个数组赋值给一个变量($value)。
//然后,再套一个循环遍历这个$value变量,$value中的值取出来,赋值给$key和$v。
foreach($data as $value){
//第一次循环把国家的数组赋值给了$value
//第二次循环把中国的省份的数组又赋值给了$value
//因此,在循环的时候把$value再遍历一次
foreach($value as $key => $v)
{
 echo $key . '-----' . $v .'<br />';
}
//为了看的更清晰,在中间加上华丽丽的分割线方便你来分析
echo '----------分割线-----------<br />';
}
?>

       

輸出:

中國-----china 
美國-----usa 
德國----- Germany 
----------分割線----- ------ 
湖北-----hubei 
河北-----hebei 
山東-----shandong 
山西-----sanxi 
- ---------分割線-----------

總結:

第一次循環的時候,將數組賦值給了$value,然後用foreach循環$value。將二維的子數組中的鍵給到$key,值賦值給變數$v。

第一次循環退出子陣列的循環,執行後續程式碼顯示分割線。

依此類推,第二次循環也是這樣。


下一節
<html> <body> <?php $x=array("one","two","three"); foreach ($x as $value) { echo $value . "<br>"; } ?> </body> </html>
章節課件