初學(xué)者必看:關(guān)于PHP數(shù)組元素介紹
PHP經(jīng)過(guò)長(zhǎng)時(shí)間的發(fā)展,很多用戶(hù)都很了解PHP了,這里我發(fā)表一下個(gè)人理解,和大家討論討論關(guān)于PHP數(shù)組元素。如果你曾經(jīng)寫(xiě)過(guò)使用大量變量的腳本(有時(shí)候近100個(gè)),你就會(huì)知道跟蹤每個(gè)變量的內(nèi)容和用途是多么的難受。真的,我曾經(jīng)有過(guò)這樣的經(jīng)歷。如果我們能把變量保存在另一個(gè)變量里邊,變量列表的長(zhǎng)度就從100減少到10以?xún)?nèi)。這就是數(shù)組是如何而來(lái)的。
#T#一個(gè)數(shù)組,從最簡(jiǎn)單的形式來(lái)講,是一個(gè)保存變量的變量。這很像一個(gè)城市里的一列房屋。城市擁有很多房屋,而每個(gè)房屋有一個(gè)地址。同樣的情況,每個(gè)變量(房子)在一個(gè)數(shù)組(城市)里有它自己的地址,我們叫它索引。讓我們假設(shè)你有三個(gè)人名分別存放在叫做$sPerson1、$sPerson2和$sPerson3的變量中。現(xiàn)在你可以在你的程序中使用這三個(gè)變量,但是這樣很容易忘記哪個(gè)變量是哪個(gè)……尤其是有其他變量的時(shí)候。要將這三個(gè)變量放到一個(gè)數(shù)組中,你可以像這樣做:
- <?php
- $arrayarrayPeople = array("John", "Susie", "Dave");
- ?>
現(xiàn)在,我使用$arrayPeople來(lái)代替$sPerson1, $sPerson2, and $sPerson3。注意我是如何使用PHP中的array()函數(shù)的。如果這三個(gè)名字是數(shù)字,我不會(huì)使用引號(hào)把它引起來(lái)。為了顯示這三個(gè)名字,我是這樣做的:
- <?php
- $arrayarrayPeople = array("John", "Susie", "Dave");
- print $arrayPeople[0];
- print $arrayPeople[1];
- print $arrayPeople[2];
- ?>
為什么是從零開(kāi)始?因?yàn)樗饕龔哪抢镩_(kāi)始。不管你把什么放到數(shù)組里,索引總是從零(0)開(kāi)始自動(dòng)累加。你可以手動(dòng)給索引指定一個(gè)特定的入口,等一下我會(huì)說(shuō)到這點(diǎn)。現(xiàn)在我將給你演示怎么通過(guò)一個(gè)循環(huán)自動(dòng)的顯示一個(gè)數(shù)組的內(nèi)容:
- <?php
- $arrayarrayPeople = array("John", "Susie", "Dave");
- $nArraySize = count($arrayPeople);
- for($index=0; $index < $nArraySize; $index++) // max. index is always number of entries - 1
- // because index starts at zero
- {
- print $arrayPeople[$index];
- }
- ?>
在這種情況下,$index是條目的索引(地址),$nArraySize是PHP數(shù)組元素的個(gè)數(shù)。count()函數(shù)返回PHP數(shù)組元素的個(gè)數(shù)。對(duì)像我剛才使用的小數(shù)組而已,使用循環(huán)的確增加了代碼的長(zhǎng)度,但是當(dāng)你開(kāi)始處理元素成百上千的數(shù)組時(shí)(他們的確存在),你就會(huì)很樂(lè)意使用循環(huán)了。
下邊我將講講如何創(chuàng)建為數(shù)組創(chuàng)建你自己的索引。每當(dāng)我使用SESSIONS來(lái)為我的網(wǎng)站設(shè)定管理員權(quán)限的時(shí)候,我都會(huì)使用數(shù)組來(lái)保存seesion信息。這里是相關(guān)的代碼
- <?php
- $SESSION= array(); // that creates a blank array
- $SESSION["username"] = $sUserName;
- $SESSION["password"] = $sPassword;
- $SESSION["accesslevel"] = $nLevel;
- // etc,etc,etc.
- ?>
看見(jiàn)我怎么使用單詞來(lái)表示索引了嗎?這樣我就可以知道$SESSION["username"]包含的是人名。這比要從$SESSION[0]記起它保存的是用戶(hù)名容易多了。我使用數(shù)組時(shí)總是像這樣使用變量的名字代替索引來(lái)表示元素。所以為了在數(shù)組$arrayDays中保存$nDaysinMay,我會(huì)使用$arrayDays["nDaysinMay"]。這樣我就能始終知道元素里包含的是什么變量。