foreach()有两种用法:
1 | foreach (array_name as $value ) |
2 | { |
3 | statement; |
4 | } |
这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一 步,也就是下次循环回得到下一个元素。
1 | foreach (array_name as $key => $value ) |
2 | { |
3 | statement; |
4 | } |
这里跟第一种方法的区别就是多了个$key,也就是除了把当前元素的值赋给$value外,当前元素的键值也会在每次循环中被赋给变量$key。键值可以 是下标值,也可以是字符串。比如book[0]=1中的"0",book[id]="001"中的"id".
程序实例:
1
01 | <?php |
02 | /*-------------------------------------------------------------------------*/ |
03 | /* foreach example 1: value only */ |
04 | echo "foreach example 1: value only " . '<br />' ; |
05 |
06 | $a = array (1, 2, 3, 17); |
07 |
08 | foreach ( $a as $v ) { |
09 | echo "Current value of " . $a . ":" . $v . "<br />" ; |
10 | } |
11 | ?> |
12 |
13 | // 运行结果 |
14 | foreach example 1: value only |
15 | Current value of $a : 1 |
16 | Current value of $a : 2 |
17 | Current value of $a : 3 |
18 | Current value of $a : 17 |
2
01 | /*-------------------------------------------------------------------------*/ |
02 | /* foreach example 2: value (with key printed for illustration) */ |
03 | echo '<br />' . '<br />' . "foreach example 2: value (with key printed for illustration) " . '<br />' ; |
04 |
05 | $a = array (1, 2, 3, 17); |
06 |
07 | $i = 0; /* for illustrative purposes only */ |
08 |
09 | foreach ( $a as $v ) { |
10 | echo "" $a [ $i ] => $v ". '<br />' ; |
11 | $i ++; |
12 | } |
13 |
14 | // 程序运行结果 |
15 | foreach example 2: value (with key printed for illustration) |
16 | $a [0] => 1 |
17 | $a [1] => 2 |
18 | $a [2] => 3 |
19 | $a [3] => 17 |
3
01 | /*-------------------------------------------------------------------------*/ |
02 | /* foreach example 3: key and value */ |
03 | echo '<br />' . '<br />' . "foreach example 3: key and value " . '<br />' ; |
04 |
05 | $a = array ( |
06 | "one" => 1, |
07 | "two" => 2, |
08 | "three" => 3, |
09 | "seventeen" => 17 |
10 | ); |
11 |
12 | foreach ( $a as $k => $v ) { |
13 | echo "" $a [ $k ] => $v ". '<br />' ; |
14 | } |
15 |
16 | // 程序运行结果 |
17 | foreach example 3: key and value |
18 | $a [one] => 1 |
19 | $a [two] => 2 |
20 | $a [three] => 3 |
21 | $a [seventeen] => 17 |
4
01 | /*-------------------------------------------------------------------------*/ |
02 | /* foreach example 4: multi-dimensional arrays */ |
03 | echo '<br />' . '<br />' . "foreach example 4: multi-dimensional arrays " . '<br />' ; |
04 |
05 | $a = array (); |
06 | $a [0][0] = "a" ; |
07 | $a [0][1] = "b" ; |
08 | $a [1][0] = "y" ; |
09 | $a [1][1] = "z" ; |
10 |
11 | foreach ( $a as $v1 ) { |
12 | foreach ( $v1 as $v2 ) { |
13 | echo "$v2" n"; |
14 | } |
15 | } |
16 |
17 | // 程序运行结果 |
18 | foreach example 4: multi-dimensional arrays |
19 | a b y z |
5
01 | /*-------------------------------------------------------------------------*/ |
02 | /* foreach example 5: dynamic arrays */ |
03 | echo '<br />' . '<br />' . "foreach example 5: dynamic arrays " . '<br />' ; |
04 |
05 | foreach ( array (1, 2, 3, 4, 5) as $v ) { |
06 | echo "$v" n"; |
07 | } |
08 |
09 | // 程序运行结果 |
10 | foreach example 5: dynamic arrays |
11 | 1 2 3 4 5 |
也可以这么用:
01 | $messageNav [ '首页' ] =ROOT_PATH; |
02 |
03 | $messageNav [ '人才交流' ] = "#" |
04 |
05 | $messageNav [ '动态专栏' ] = "hragent/cn/" |
06 |
07 | <?php $i = 0; foreach ( $messageNav as $key => $value ):?> |
08 |
09 | <?php if ( $i != count ( $messageNav ) - 1):?> |
10 | <a href= "<?=$value?>" ><?= $key ?></a>> |
11 | <?php else :?> |
12 |
13 | <a href= "<?=$value?>" class = "onlink" ><?= $key ?></a> |
14 | <?php endif ;?> |
15 | <?php $i ++; endforeach ;?> |