Board logo

標題: 4-1-2 陣列的使用 [打印本頁]

作者: 小誌    時間: 2011-4-18 19:36     標題: 4-1-2 陣列的使用

4-1-2   陣列的使用
陣列資料存取
不可一次指定陣列內的元素資料值,例如:
  1. ‘逐個元素指定
  2. $Myarray[0] = 999;
  3. $Myarray[1] = 999;
  4. $Myarray[2] = 999;
  5. $Myarray = 999;  //錯誤, 不可一次指定陣列內的元素資料值
複製代碼
在上例中,我們已透過逐個個元素指定的方式建立陣列Myarray,但是又使用「$Myarray = 999;」敘述指定Myarray,此時原先的陣列Myarray已經消失而變成變數Myarray。
不可一次讀取陣列內的元素資料值,例如:
  1. $Myarray = Array(3,6,9);
  2. echo $MyArray ; //錯誤
複製代碼
上例之執行結果如下圖所示,輸出的結果為錯誤訊息,因為「echo $MyArray ;」敘述變成要求輸出一個未初始的變數:
[attach]5485[/attach]
圖4-4   


要讀出陣列元素資料值,必須逐項讀出:
  1. $Myarray = array(“春天”,”夏天”,”秋天”,”冬天”);
  2. echo $Myarray[0];  //印出春天
  3. echo $Myarray [1];  //印出夏天
  4. echo $Myarray [2];  //印出秋天
  5. echo $Myarray [3];  //印出冬天
複製代碼
還好,我們的陣列元素只有四個,如果有40個,那我們可得寫40行敘述才能將陣列內的元素資料全部列印出來!可是,總會遇到元素很多的時候吧!那我們就可以配合迴圈敘述來做,例如用for迴圈來列印出全部的陣列資料:(範例ex04_02.php)
  1. $Myarray = array(“春天”,”夏天”,”秋天”,”冬天”);
  2. for ($I=0 ; $I<=3 ; $I++)
  3. {
  4. echo “$Myarray[$I] . <br>”;
  5. }
複製代碼
[attach]5486[/attach]
圖4-5  範例ex04_02.php。
作者: 小誌    時間: 2011-4-18 19:40

註標範圍
存取陣列資料不可超過註標範圍。
  1. //宣告4個元素的陣列,註標由0至3
  2. $Myarray = $array(“春天”,”夏天”,”秋天”,”冬天”);
  3. echo $Myarray[5];  //錯誤
  4. echo $Myarray[-1];  //錯誤
複製代碼
陣列大小(長度)
建立陣列後,我們可以直接使用count()函數得知陣列的大小(長度),我們只要將count()函數得知的陣列大小減1就是陣列元素的最大註標。
例如:
  1. $Myarray = array(3,6,9);
  2. echo (count($Myarray)); //列印出陣列大小3
  3. echo (count($Myarray)-1) //列印出最大陣列註標2
複製代碼
因此,我們可以將範例ex04_02.php程式敘述更改為使用『count()』函數:(ex04_03.php)
  1. $Myarray = array("春天","夏天","秋天","冬天");
  2. for ($I=0 ; $I<count($Myarray) ; $I++)
  3. {
  4. echo "$Myarray[$I] <br>";
  5. }
複製代碼
在上例中,我們將count()函數放在for迴圈敘述的轍是條件中,雖然敘述簡短,但卻是不智之舉,因為迴圈每次執行時都得呼叫一次count()函數,造成程式執行效率不佳,所以要把count()函數提出迴圈外利用才對:(ex04_04.php)
  1. $Myarray = array("春天","夏天","秋天","冬天");
  2. $num=count($Myarray);
  3. for ($I=0 ; $I<$num ; $I++)
  4. {
  5. echo "$Myarray[$I] <br>";
  6. }
複製代碼

作者: 小誌    時間: 2011-4-18 19:41

移除陣列元素
當我們需要移除某個陣列中的變數時,可使用『unset()』函數,unset()函數不僅可以移除陣列中的元素,甚至可以用來毀滅變數(釋放變數空間),例如(ex04_05.php):
  1. $Myarray = array("春天","夏天","秋天","冬天");
  2. $num=count($Myarray);
  3. for ($I=0 ; $I<$num ; $I++)
  4. {
  5. echo "$Myarray[$I] <br>";
  6. if ($Myarray[$I]=="秋天")
  7.     unset($Myarray[$I]);
  8. }
複製代碼





歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)