陣列
概述及用途
陣列是一個結構性的資料儲存空間,在程式設計上是不可或缺的工具。陣列由元素組成,每一個元素都持有一個數值。每個元素都是以它的索引(或鍵值)來參照的。 索引可以是字串或數位。如果省略了索引,會自動產生從 0 開始的整數索引。如果索引是整數,則下一個產生的索引將是目前最大的整數索引 + 1。注意如果定義了兩個完全一樣的索引,則後面一個會覆蓋前一個。 |
各種使用方式與範例
說明 |
在陣列初始化中,我們主要會用到下列的方法:
|
範例 | 直接將值設定給陣列 | 顯示結果 |
<?php $a[] = "台北"; $a[] = "台中"; $a[] = "高雄"; for ( $i=0 ; $i<3 ; $i++) { echo "$i -> $a[$i] <BR>"; } ?> |
附註 |
上面的範例顯示,如果沒有指定索引值給 $a[] ,那麼,PHP會預設索引值由 0 開始,所以陣列a的0~2被依序設定了字串。 |
範例 | >>指定索引值 | 顯示結果 |
<?php $b[100] = "校長室"; $b[200] = "教務處"; $b[300] = "訓導處"; $b[] = "總務處"; //注意索引值 var_dump ($b); ?> |
||
附註 | 發現了嗎?總務處的索引值是"301",這是因為PHP會指定到目前為止所用到的最大索引值的「下一個」索引值給沒有指定的陣列資料。 |
範例 | >>文字索引值 | 顯示結果 |
<?php $c["Jan"] = "一月"; $c["Feb"] = "二月"; $c["Mar"] = "三月"; echo $c["Feb"]; ?> |
附註 | 文字的索引值可用雙引號,也可以用單引號來表達。 |
範例 | 由 list( ) 或 array( ) 函數來宣告 | 顯示結果 |
<?php $a = array ( "台北","台中","高雄"); for ( $i=0 ; $i<3 ; $i++) { echo "$i -> $a[$i] <BR>"; } ?> |
附註 | 上述範例,也沒有指定索引值,只是將「值」指定給陣列,所以陣列也會自動給 0 、1、2 的索引值。 |
範例 | >>指定索引值 | 顯示結果 |
<?php $b = array ( 100 => "校長室", 200 => "教務處", 300 => "訓導處", "總務處" ); var_dump ($b); ?> |
範例 | >>文字索引值 | 顯示結果 |
<?php $c["Jan"] = "一月"; $c["Feb"] = "二月"; $c["Mar"] = "三月"; echo $c["Feb"]; ?> |
說明 | 一般來說,一般(一維)的陣列已經很好用了,但有時會應用到多維的陣列,二維陣列值(存)取的方法: $變數名稱[第一層索引件][第二層索引件]。 |
範例 | 二維陣列 | 顯示結果 |
<?php $game =array ( 0 => array(" ", "第一局", "第二局", "第三局"), 1 => array("大雄", "剪刀", "石頭", "布"), 2 => array("哆啦A夢", "石頭", "石頭", "石頭"), 3 => array("獲勝者", "哆啦A夢", "平手", "大雄") ); echo '<table border="1">'; for($i=0;$i<5;$i++) { echo "<tr>"; for($c=0;$c<5;$c++) { echo "<td>".$game[$i][$c]."</td>"; } echo "</tr>"; } echo "</table>"; ?> |
||