陣列是多個數值的集合,並藉由索引(index)以區別該陣列中的變數。
陣列在各個程式語言中都可以找的到它的蹤跡,也是非常重要的觀念之一,在使用之前,必須先瞭解它的觀念。
陣列可以是一維、二維、三維或是以上。
以一維列來說名,一個名為a的陣列如下:
A[0] | A[1] | A[2] | A[3] | A[4] | A[5] |
我們過,陣列是藉由索引來區別陣列中的變數,仔細觀看上方的一維陣列,在PHP中,陣列的起始索引是由0開始到無限,而且你不須要預先宣告陣列大小(一開始我們就提過,PHP是比較鬆散的語法),所以它不止可以到A[5],可以一直延下去。
在PHP一維陣列的宣告方式以下兩種方式:
$cars=array("Saab","Volvo","BMW","Toyota"); |
$cars[0]="Saab"; $cars[1]="Volvo"; $cars[2]="BMW"; $cars[3]="Toyota"; |
其實這兩種方式所造生的結果並沒有什麼不一樣,看個人習慣選擇,以及它的輸出方式如下:
<?php $cars[0]="Saab"; $cars[1]="Volvo"; $cars[2]="BMW"; $cars[3]="Toyota"; echo $cars[0] . " and " . $cars[1] . " are Swedish cars."; ?> |
輸出:
Saab and Volvo are Swedish cars.
別外還有一種陣列的宣告方式:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); |
$ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; |
這樣的宣告方式,是使用名稱索引,同樣的,兩種宣告方式沒什麼不一樣,看個人習慣而定。
而呼叫使用方式,則是將原本的數字索引方式做個變化而已:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?> |
輸出:
Peter is 32 years old.
我配合switch做個簡單的改寫:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; Switch($x){ Case Peter: echo $x.“ is " . $ages['$x'] . " years old."; Case Quagmire: echo $x.“ is " . $ages['$x'] . " years old."; Case Peter: echo $x.“ is " . $ages['$x'] . " years old."; default: echo “No body.”; } >? |
而二維陣列長怎樣呢?如下:
A[0,0] | A[1,0] | A[2,0] | A[3,0] | A[4,0] | A[5,0] |
A[0,1] | A[1,1] | A[2,1] | A[3,1] | A[4,1] | A[5,1] |
A[0,2] | A[1,2] | A[2,2] | A[3,2] | A[4,2] | A[5,2] |
就是一般我們常見的二維表格,除了像一維陣列一般會橫向遞增外,多了縱向的觀念。
這邊我們連同三維陣列一併講解,多維陣列的語法如下:
$array[index 1] [index 2]=element; //2維 $array[index 1] [index 2] [index 3]=element; //3維,之後以此類推 |
Example:
$a[1][0]=50; $b[4][6]=30; |
我們來實作一個將二維表格陣列化的過程:
產品 | 成本 | 售價 |
西瓜 | 60 | 68 |
香蕉 | 50 | 55 |
蘋果 | 12 | 18 |
宣告語法如下:
$x[0][0]=”產品”; $x[0][1]=”成本”; $x[0][2]=”售價”; $x[1][0]=”西瓜”; $x[1][1]=”60”; $x[1][2]=”68”; $x[2][0]=”香蕉”; $x[2][1]=”50”; $x[2][2]=”55”; $x[3][0]=”蘋果”; $x[3][1]=”12”; $x[3][2]=”18”; |
以這個例子來看,我標上索引,讓結果更清楚
產品[0,0] | 成本[0,1] | 售價[0,2] |
西瓜[1,0] | 60[1,1] | 68[1,2] |
香蕉[2,0] | 50[2,1] | 55[2,2] |
蘋果[3,0] | 12[3,1] | 18[3,2] |
另外,我們也可以使一種方式宣告:
$x=array(array(“產品”, ”成本”, ”售價”), array(“西瓜”, ”60”, ”68”), array(“香蕉”, ”50”, ”55”), array(“蘋果”, ”12”, ”18”)); |
這兩種顯告方式結果並沒有不一樣,一樣是看個人習慣而定。
那或許你會問,一維陣列,有名稱式索引宣告,那多維呢?當然也是有的。
Example:
$families = array("Griffin"=>array("Peter","Lois","Megan"), "Quagmire"=>array("Glenn"), "Brown"=>array("Cleveland","Loretta","Junior")); |
這樣會跟數值索引有什麼不一樣?當然,在輸出的時候有所差別,如果是用名稱索引的話,你要這樣使用。
以上所述之陣列:
<?PHP Echo $families[Griffin][0].”</br>”; Echo $families[Griffin][1]; ”</br>” Echo $families[Griffin][2]; ”</br>” Echo $families[Quagmire][0]; ”</br>” Echo $families[Brown][0]; ”</br>” Echo $families[Brown][1]; ”</br>” Echo $families[Brown][2]; ?> |
輸出:
Peter
Lois
Megan
Glenn
Cleveland
Loretta
Junior
目前為止對於陣列的使用有沒有更瞭解了呢?陣列相當重要的概念,希望你能夠弄懂它,對於後面的程式開發會相當的有所助益。
PHP與MySQL網頁設計實務/網奕出版/吳權威 編著
沒有留言:
張貼留言