KT客棧

Web程式交流 & 聊幹畫 / 心情手札

【PHP】5陣列-5.4 修改及增加陣列

*PHP  5陣列-5.4 修改及增加陣列鍵值
5.4  修改及增加陣列
在陣列中,當我們已建立好陣列後,仍然可以指定某一個索引鍵的鍵值來做修改。例如$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






沒有留言:

張貼留言

@templatesyard