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>
提交重置代码