[基礎課程] PHP 陣列變數
陣列是一種結構性的資料儲存空間,可以儲存多筆資料到一個陣列內,分別由不同的元素做對應位置。請開始在 Web 目錄下新增檔案 2_array.php,為了簡化程式碼結構將不建置 HTML 基本結構。請開始做 PHP 各種練習並預覽網頁結果。
基礎的 array 陣列
陣列內每個元素包含了索引值跟內容值,提供尋找跟讀取。簡單來說,以前學的變數只能指定一個值。但如果是陣列型態的變數,就能多個變數且沒有侷限。可以建議初學者,在學習陣列會以火車列車廂串接作為假想情境。
練習:跟著做理解 array
|
陣列的說明如下:
- 單看陣列變數的單一元素內,分別是 key(索引)跟 value(內容)。索引預設以數字從 0 開始。
- 同一陣列 [] 內,初次未填時預設為 0(除非有指定),之後每加入新元素會自動遞增數字做索引。
- 列印陣列的方式使用 print_r() 函數。
- 當你需要顯示某一個資料時,需要透過索引值來找到該元素位置才能存取內容。
練習:跟著做
//可以儲存字串,索引也可以用文字來命名 |
到目前為止,你應該知道一個陣變數列如何塞連續多個值,同時也能知道索引命名能夠幫助之後存取使用。
接著練習:跟著做
|
我們可以用變數來找索引,不一定要固定文字。
二維的陣列
現在知道一個變數 A 使用陣列型態,每個元素可以塞資料。如果這個元素所塞的資料又是一個陣列型態呢?思考一下,用以下不同概念做解說:
- 以火車列車來說該某車廂內又塞了一個火車列車。這個車廂內火車也是有很多車廂可以放資料。
- 以二維表格來說,垂直列是指陣列各元素,橫向列是指單元素內之陣列各元素
練習:跟著做
|
Foreach 迴圈存取陣列
foreach 是迴圈的一種,是提供陣列進行連續取出的行為動作。語法為
foreach ($variable as $key => $value) { |
也就是將一個變數(陣列型)根據這個陣列長度依序取出元素,而在該迴圈單趟下,取出的元素會以 $key
跟 $value
做臨時變數,$key
可以省略不寫。
練習:跟著做
|
透過上面舉例,foreach 可以自動的將每一格元素抽取出來並暫存到索引變數(可省略)與資料變數。
練習:二維陣列的循序抽取
|
當二維陣列要全部存取時,就是用兩次 foreach 來循序抽取。第一次抽取外面的陣列個元素,第二次抽取這個外面元素的裡面所有抽取。也就是跑了 N*N 次迴圈。如果很肯定要找某單一個元素下的陣列,也能直接指定該元素,就不需要做兩個 foreach() 浪費效能與迴圈次數。
以上課題之完整代碼: view full code