先来看一个例子:
$arr = array(0,1,2,3,4);让数组的每个值都变成原来的两倍,应该怎么来实现?
如果没有学习foreach之前,会想到用for循环
<?php $arr = array(0,1,2,3,4); for($i=0;$i<5;$i++){ $arr[$i]=$arr[$i]*2; } print_r($arr); /* 返回: Array ( [0] => 0 [1] => 2 [2] => 4 [3] => 6 [4] => 8 ) */ ?>
这种解决办法是键就是数字,并且是连续的情况下,才能这样用
如果键是字符串,又应该如何做呢?
例如:$arr = array('第一'=>0,'第二'=>1,'第三'=>2,'第四'=>3,'第五'=>4); 让他们的值变成原来的两倍
直接上代码
<?php $arr = array('第一'=>0,'第二'=>1,'第三'=>2,'第四'=>3,'第五'=>4);
//这是键和值都出现的写法 foreach ($arr as $key => $value) { $arr[$key]=$value*2; } print_r($arr); /* 返回: Array ( [第一] => 0 [第二] => 2 [第三] => 4 [第四] => 6 [第五] => 8 ) */
/*
如果求和的话,只要值就好了,不用键,那么可以这么写
*/
$sum=0;
//这是只出现值得写法
foreach ($arr as $value) {
$sum+=$value;
}
echo $sum;
//返回20
/*
可不可以只显示键,不要出现值,
这是不可以的
*/
?>