Array阵列型态.ppt
Array陣列型態n集合相同屬性的變數所成的集合。n可以是二維、三維或者多維陣列,其中的元素也很自由,可以是string、integer或者double,甚至是array。n語法:$陣列名稱指標n陣列由第0個元素開始配置。n例:$a0=1234;$a1=567;$a=array(1234,567);$car0$car1$car2$car3$car4$car0$car1$car2$car3$car4如何使用陣列在PHP裡要使用陣列時,只要將變數進行初始化陣列的程序即可。範例:$names0=Jollen$names1=Jordan$names2=Kitty$nameshowmany=3;元素陣列名稱指標ScalarArrayassociativearray指標決定了維度變數自動變成陣列型態多維陣列多維陣列的初始化與一維陣列方法相同,例如:$alpha00=A;$alpha01=B;$alpha10=C;$alpha11=D;這種寫法等於:$alpha0=A;$alpha0=B;$alpha1=C;$alpha1=D;PHP裡的陣列事實上是利用資料結構中的雙向鍵結串列來維護的範例13-1陣列函數narray()ncount()ncurrent()nlist()nnext()npre()nreset()nkey()陣列函數array用途:建立一個陣列,依給定的參數(語法)傳回陣列。範例:$name=array(Jollen,Paul,Ketty);相當於:$name0=Jollen;$name1=Paul;$name2=Ketty;陣列函數arrayarray()亦可用在巢狀式陣列:$fruits=array(fruits=array(orange,“banana,apple),numbers=array(1,2,3,4,5,6),holes=array(first,second,third);上面為建立一個二維陣列的範例。此例相當於:$fruitsfruits0=orange;$fruitsfruits1=banana;$fruitsfruits2=apple;$fruitsnumbers0=1;$fruitsnumbers1=2;$fruitsnumbers2=3;$fruitsnumbers3=4;$fruitsnumbers4=5;$fruitsnumbers5=6;$fruitsholes0=first;$fruitsholes1=second;$fruitsholes2=third;輸出陣列資料 使用foreach,foreach主要是設計給array變數用來使用的,例如:.$value.n;?自定索引陣列自定索引陣列我們也可以自定索引=,例如:$a=array(1=tad,5=bee,10=apple,22=tim);如此,$a1=tad,$a5=bee,$a10=apple,$a22=tim“那$a4呢?$a15呢?對不起!查無此值。自定文字索引陣列自定文字索引陣列n我們也可以用文字來作為索引,例如:$a=array(tad=hello,bee=1234,apple=abc,tim=rrr);n如此,$atad=hello,$abee=1234,$aapple=abc,$atim=rrr輸出陣列資料 使用foreach,foreach主要是設計給array變數用來使用的,可以將元素名稱印出,其中$key為陣列的指標名稱,例如35,name=June,age=35,address=Tainan);echo;foreach($customer as$key=$value)echo;echo.$key.$value.;echo;?陣列函數count定義:intcount(陣列名稱);用途:傳回陣列的元素個數,非陣列的變數則只有一個元素。如果沒有這個傳入任何變數,則傳回0;如果不是陣列,則傳回1。範例:$names=array(jollen,nick,frank);echocount($names);輸出:3範例13-5陣列函數array_sum定義:intarray_sum(陣列名稱);用途:傳回陣列所有元素相加之值。範例:範例13-6,二維陣列相加陣列應用排序排序:範例排序:範例 13-8搜尋:搜尋:是否有?是否有?與搜尋與搜尋全部符合的全部符合的範例範例 13-9陣列應用多人的驗證自定文字索引陣列自定文字索引陣列我們也可以用文字來作為索引,例如:$a=array(tad=hello,bee=1234,apple=abc,tim=rrr);如此,$atad=hello,$abee=1234,$aapple=abc,$atim=rrr“這一部份,有沒有讓您想到如何運用到我們的多人密碼驗證程式啊?若是我們把帳號當作陣列索引,密碼當作陣列值,如此,不就可以很方便的取得某帳號的密碼了嗎?陣列函數current定義:mixedcurrent(arrayarray);用途:傳回目前陣列裡的指標所指元素的值。每一個陣列都有一個內部的指標,指向其中的一個元素。陣列的所有元素利用雙向串列連接,這個指標便指向目前的元素。一開始這個指標是指到陣列的第一個元素,利用其它函數存取陣列時,便會改變這個指標,current()便是傳回目前所指的陣列元素的值,但不會改變這個指標的位置。傳回指標指向陣列的範圍之外的位置,便傳回false。有一種情況要特別小心,當元素的值為0或是空字串時,也會傳回false,此時可改用echo()函數。陣列函數listlist()並不是一個function,而是像array()一樣,屬於PHP的語法。list()用來一次給定多個值給多個變數。範例:?$result=mysql($conn,SELECTid,name,salaryFROMemployees);while(list($id,$name,$salary)=mysql_fetch_row($result)print(n.$namen.$salaryn.n);?陣列函數next定義:mixednext(arrayarray);用途:傳回下一個陣列指標所指的值,注意是先把指標往下移,再傳回值。如果元素的值是0或(空字串),則傳回false。當指標已指向陣列尾段,無法再往下移時,則傳回false。可利用echo()函數來觀察陣列中是否有0或。陣列函數prev定義:mixedprev(arrayarray);用途:將陣列內部指標往前移前一位後,再傳回元素的值。陣列函數reset定義:mixedreset(arrayarray);用途:將陣列的指標初始化,即移到第一個元素的位置,並且傳回第一個元素的值。陣列函數key定義:mixedkey(arrayarray);用途:傳回目前associativearray中的key,即陣列內部指標所指元素位置的key。配合reste()、next()的綜合範例如下:$fruits=array(d=lemon,a=orange,b=banana,c=apple);arsort($fruits);for(reset($fruits);$key=key($fruits);next($fruits)echofruits$key=.$fruits$key.;陣列函數key輸出:fruitsa=orangefruitsd=lemonfruitsb=bananafruitsc=apple迴圈由第一個元素開始拜訪所有的元素,到最後一個元素結束。