返回列表 上一主題 發帖

4-1-2 陣列的使用

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 ;」敘述變成要求輸出一個未初始的變數:

圖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. }
複製代碼

圖4-5  範例ex04_02.php。
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

註標範圍
存取陣列資料不可超過註標範圍。
  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. }
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

移除陣列元素
當我們需要移除某個陣列中的變數時,可使用『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. }
複製代碼
心安,平安   
發表任何無意義的感謝或灌水文章一律砍,珍惜帳號,請詳閱版規!!

TOP

        靜思自在 : 生氣,就是拿別人的過錯來懲罰自己。
返回列表 上一主題