在陣列中,當我們已建立好陣列後,仍然可以指定某一個索引鍵的鍵值來做修改。例如$k = array(10,20,30);,我想把第2個鍵值修改為99的話,只要在下方補上$k[1] = 99;這樣就可以了!
而建立的一維陣列,也可以再把它放進二維陣列裡,再透過巢狀迴圈去取值出來。
如果想要新增鍵值可以使用array_pad()函式、剃除重複鍵值可使用array_unique()函式、反轉鍵值可使用array_reverse()函式等...下列範例中,我會以array_pad()函式來做新增鍵值的示範。
#建立2個一維陣列
#將amy第3科分數改為100分、lily的第一科分數改為100分
#增加第6科分數,用array_pad()函式
#存放至$scores建立二維陣列,並透過巢狀迴圈取值
#計算總分使用+=運算子
<?php
// 建立一維陣列
$amy = array(64, 65, 77, 55, 82);
$lily = array(77, 81, 99, 66, 54);
$amy[2] = 100; //更改索引鍵值
$lily[0] = 100; //更改索引鍵值
$amy = array_pad($amy, 6, 20); //由右增加鍵值(新增的第6科分數放到最後)
$lily = array_pad($lily, -6, 20); //由左增加鍵值(新增的第6科分數放到開頭)
// 將上面的一維陣列,存放至$scores建立二維陣列
$scores = array($amy, $lily);
// 用巢狀迴圈取值,並計算總分
$total = 0;
for ($k=0; $k<count($scores); $k++) { //$k = 0、1(2個人)
$summary = 0;
for ( $i=0; $i<count($scores[$k]); $i++) { //$i = 0至5(6科分數)
echo($scores[$k][$i]." ");
$summary += $scores[$k][$i];
$total += $scores[$k][$i];
}
echo("這六科成績小計: ".$summary."<br/>"); //個人六科總分放外層迴圈
}
echo("成績總分: ".$total."<br/>"); //2人的六科總分放到巢狀迴圈外面
?>
執行結果如下:
64 65 100 55 82 20 這六科成績小計: 386
20 100 81 99 66 54 這六科成績小計: 420
成績總分: 806
沒有留言:
張貼留言