多用foreach来操作数组

foreach()有两种用法:

1foreach(array_name as $value)   
2{      
3    statement;   
4}

这里的array_name是你要遍历的数组名,每次循环中,array_name数组的当前元素的值被赋给$value,并且数组内部的下标向下移一 步,也就是下次循环回得到下一个元素。

1foreach(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 */
04echo "foreach example 1: value only ".'<br />';
05 
06$a = array(1, 2, 3, 17);
07 
08foreach ($a as $v) {
09   echo "Current value of ".$a.":". $v."<br />";
10}
11?>
12 
13// 运行结果
14foreach example 1: value only
15Current value of $a: 1
16Current value of $a: 2
17Current value of $a: 3
18Current value of $a: 17

2

01/*-------------------------------------------------------------------------*/
02/* foreach example 2: value (with key printed for illustration) */
03echo '<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 
09foreach ($a as $v) {
10    echo ""$a[$i] => $v".'<br />';
11    $i++;
12}
13 
14// 程序运行结果
15foreach 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 */
03echo '<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 
12foreach ($a as $k => $v) {
13    echo ""$a[$k] => $v".'<br />';
14}
15 
16// 程序运行结果
17foreach 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 */
03echo '<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 
11foreach ($a as $v1) {
12    foreach ($v1 as $v2) {
13        echo "$v2"n";
14    }
15}
16 
17// 程序运行结果
18foreach example 4: multi-dimensional arrays
19a b y z

5

01/*-------------------------------------------------------------------------*/
02/* foreach example 5: dynamic arrays */
03echo '<br />'.'<br />'."foreach example 5: dynamic arrays ".'<br />';
04 
05foreach (array(1, 2, 3, 4, 5) as $v) {
06    echo "$v"n";
07}
08 
09// 程序运行结果
10foreach example 5: dynamic arrays
111 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;?>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值