循环执行代码块指定的次数,或者当指定的条件为真时循环执行代码块。
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。
第一次循环退出子数组的循环,执行后续代码显示分割线。
依此类推,第二次循环也是这样。