PHP遍历数组---foreach

本文深入讲解PHP中的foreach循环,包括其基本语法、如何遍历数组并获取键和值,以及如何在循环中修改数组元素。同时,介绍了如何利用引用进行赋值以实现数组元素的更新。

foreach(循环数组)
第一种:

foreach(数组 as $value){
            statement
}

遍历给定的数组,每次循环中,当前单元的值被赋给value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一单元)注:value并且数组内部的指针向前移一步(因此下一次循环中将会得到下一单元) 注:value()value中的value可以自己定义名称,什么都可以($k也可以)
第二种

foreach(数组 as $key => $value){
            statement
}

做同样的事,只除了当前单元的键名也会在每次循环中被赋予给变量$key

$arr5 = array(5=>'apple',6=>'orange',50,11=>50.8);//键=>值,在数组中,键不相同的,值可以相同
//遍历数组,就是把每个数输出出来
foreach ($arr5 as $v) {
	echo $v."<br>";
}

输出结果:apple
orange
50
50.8
首先它把apple给了v,执行完这步,指针将往后移一个,orange的值给了v,执行完这步,指针将往后移一个,orange的值给了vorangev,以此类推。直到把所有元素遍历完,循环结束。

$arr5 = array(5=>'apple',6=>'orange',50,11=>50.8);//键=>值,在数组中,键不相同的,值可以相同
foreach ($arr5 as $k=>$v) {
	echo $v."<br>";
}

输出结果:apple
orange
50
50.8
键给k,值给k,值给k,v,输出的是v,与v,与v,k无关以此类推

关联数组中使用foreach

$arr =array(); //创建一个空数组
$arr['张三'] = 50;
$arr['李四'] = 80;
$arr['赵六'] = 70;
$arr[5] = 'apple';
$arr[] = 'orange';

foreach($arr as $key => $v){
    echo $v."<br>";
}

输出结果:50
80
70
apple
orange

我们也可以输出$k

输出结果:张三
李四
赵六
5
6

我们输出更难得结果

foreach($arr as $key => $v){
    echo $key. '=>' .$v .'<br>';
}

输出结果:张三=>50
李四=>80
赵六=>70
5=>apple
6=>p=orange

另一个例子

//最笨的方法
$arr = array('张三'=>50,'赵六'=>'60','孙七'=>45);
//给每个元素提分,+10
$arr['张三'] += 10;
$arr['赵六'] += 10;
$arr['孙七'] += 10;
print_r($arr);

输出结果: Array(‘张三’=>60,‘赵六’=>70,‘孙七’=>55)

如果人太多,用这种方法太麻烦了,我们采用foreach

foreach ($arr as $key => $value) {
       $value = $value+10;
 }

输出结果: Array(‘张三’=>50,‘赵六’=>‘60’,‘孙七’=>45)
没有变化,因为遍历时使用的值赋值,可以采用引用赋值
注:如果我们想改变上边的值时必须加&符号

foreach ($arr as &$value) {
      $value+=10;

除了引用赋值,我们还可以采用别的方法,我们可以借助键。

foreach ($arr as $key => $value) {
       $arr[$key] += 10;	

输出结果: Array(‘张三’=>60,‘赵六’=>70,‘孙七’=>55)
注:通过访问张三的成绩时,我们+10

unset($value);//取消引用
print_r($arr);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值