在PHP中经常会用到foreach的使用,而要用到foreach,就必须用到数组。因此,在这篇文章中,我们一边讲数组,一边讲foreach。
foreach有两种语法:
第一种:遍历给定的 数组语句 array_expression 数组。每次循环中,当前单元的值被赋给 $value 并且数组内部的指针向前移一步(因此下一次循环中将会得到下一个单元)。
foreach (array_expression as $value)
第二种:同上,同时当前单元的键名也会在每次循环中被赋给变量 $key。
foreach (array_expression as $key => $value)
下边我们一一来讲解一下!
一、一维普通数组 与 foreach
我们先写一个一维数组,如下:
$a = array('Tom','Mary','Peter','Jack');
1、我们用第一种foreach方法来输出。
foreach ($a as $value) { echo $value."<br/>"; }
最后得到的结果是:
Tom Mary Peter Jack
2、我们用第二种 foreach 方法来输出。
foreach ($a as $key => $value) { echo $key.','.$value."<br/>"; }
最后得到的结果是:
0,Tom 1,Mary 2,Peter 3,Jack
总结: 很明显,我们看到只是多了一个 $key , 而这个 $key 的值就是序号 1、2、3、4 等等!
二、一维关联数组 与 foreach
一维关联数组如下:
$b = array('a'=>'Tom','b'=>'Mary','c'=>'Peter','d'=>'Jack');
也有人爱这么写,如下:
$b = array( 'a'=>'Tom', 'b'=>'Mary', 'c'=>'Peter', 'd'=>'Jack' );
1、我们用第一种foreach方法来输出和上边一样。
foreach ($b as $value) { echo $value."<br/>"; }
最后得到的结果是:
Tom Mary Peter Jack
2、我们用第二种foreach方法来输出。
foreach ($b as $key => $value) { echo $key.','.$value."<br/>"; }
最后得到的结果是:
a,Tom b,Mary c,Peter d,Jack
总结: 很明显,在一维关联数组下, $key就是关联的序号,即相应的a、b、c、d。