麻辣家族討論版版's Archiver

小誌 發表於 2011-4-18 19:36

4-1-2 陣列的使用

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


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

小誌 發表於 2011-4-18 19:40

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

小誌 發表於 2011-4-18 19:41

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

頁: [1]

麻辣家族討論版版為 麻辣學園 網站成員  由 昱得資訊工作室 © Since 1993 所提供