先来看一个例子:php
$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 ) */ ?>
这种解决办法是键就是数字,而且是连续的状况下,才能这样用spa
若是键是字符串,又应该如何作呢?blog
例如:$arr = array('第一'=>0,'第二'=>1,'第三'=>2,'第四'=>3,'第五'=>4); 让他们的值变成原来的两倍字符串
直接上代码for循环
<?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;class
//这是只出现值得写法
foreach ($arr as $value) {
$sum+=$value;
}
echo $sum;foreach
//返回20循环
/*
可不能够只显示键,不要出现值,
这是不能够的
*/
?>