先來看一個例子: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循環
/*
可不能夠只顯示鍵,不要出現值,
這是不能夠的
*/
?>