陣列

概述及用途
    陣列是一個結構性的資料儲存空間,在程式設計上是不可或缺的工具。陣列由元素組成,每一個元素都持有一個數值。每個元素都是以它的索引(或鍵值)來參照的。

    索引可以是字串或數位。如果省略了索引,會自動產生從 0 開始的整數索引。如果索引是整數,則下一個產生的索引將是目前最大的整數索引 + 1。注意如果定義了兩個完全一樣的索引,則後面一個會覆蓋前一個。

各種使用方式與範例

說明     在陣列初始化中,我們主要會用到下列的方法:
  • 直接將值設定給陣列
  • 由 list( ) 或 array( ) 函數來宣告
範例 直接將值設定給陣列 顯示結果
<?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("&nbsp", "第一局", "第二局", "第三局"),
    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>";
?>