經(jīng)驗(yàn)分享:PHP數(shù)組循環(huán)取數(shù)據(jù)技巧
我們想要得到大堆數(shù)據(jù),你就要對(duì)數(shù)組進(jìn)行循環(huán),我們現(xiàn)在就來看看PHP數(shù)組循環(huán)得到數(shù)據(jù)。因要負(fù)責(zé)將數(shù)據(jù)放置在數(shù)組內(nèi),現(xiàn)在,如何將其取出呢? 從數(shù)組中檢索數(shù)據(jù)非常簡(jiǎn)單:所有你所需要做的就是使用索引號(hào)來訪問數(shù)組的適當(dāng)元素。為了讀取整個(gè)數(shù)組的內(nèi)容,你只需要使用你在該教程第三章中所學(xué)到的循環(huán)結(jié)構(gòu)來簡(jiǎn)單的對(duì)其進(jìn)行循環(huán)操作即可。
來一個(gè)快捷的例子如何?
- <html> <head></head> <body> My favourite bands are: <ul> <?php
- // define array $artists = array('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses');
- // loop over it and print array elements for ($x = 0; $x < sizeof($artists
當(dāng)你運(yùn)行該腳本時(shí),你會(huì)看到下面的結(jié)果:
- My favourite bands are: Metallica Evanescence Linkin Park Guns n Roses
在這個(gè)實(shí)例中,我首先定義了一個(gè)數(shù)組,然后使用for()循環(huán)做下面的工作:遍歷該數(shù)組,使用索引符號(hào)取得元素,然后一個(gè)接一個(gè)的顯示它們。 在這里,我將吸引你們的注意力在sizeof()函數(shù)上。該函數(shù)是最重要也是最常用的數(shù)組函數(shù)之一。其返回?cái)?shù)組的大小(讀?。簲?shù)組內(nèi)元素的個(gè)數(shù))。它大部分用于循環(huán)計(jì)數(shù)器中以確保循環(huán)次數(shù)和數(shù)組中的所有元素的個(gè)數(shù)一致。 如果你正在使用聯(lián)合數(shù)組,那么隨手可得array_keys()和array_values()函數(shù)以用來得到數(shù)組中所有關(guān)鍵字和對(duì)應(yīng)的值的列表。
- 'bacon and eggs', 'lunch' => 'roast beef', 'dinner' => 'lasagna');
- /* returns the array ('breakfast', 'lunch', 'dinner') with numeric indices */
- $result = array_keys($menu); print_r($result); print "
- "; /* returns the array ('bacon and eggs', 'roast beef', 'lasagna') with numeric indices */
- $result = array_values($menu); print_r($result); ?>
然而,這里還有一種更簡(jiǎn)單的方法來提取數(shù)組中的所有元素。PHP4.0介紹了一種經(jīng)設(shè)計(jì)專門用于對(duì)數(shù)組反復(fù)枚舉目的的非常新的循環(huán)類型:foreach()循環(huán)(它的語(yǔ)法結(jié)構(gòu)類似于同名的Perl結(jié)構(gòu))。
下面是其語(yǔ)法格式:
- foreach ($array as $temp) { do this! }
foreach()循環(huán)對(duì)作為參數(shù)傳遞給它的數(shù)組的每一個(gè)元素運(yùn)行一次,在每次重復(fù)時(shí)向前遍歷該數(shù)組。和for()循環(huán)不同,它不需要計(jì)數(shù)器或調(diào)用函數(shù) sizeof(),因?yàn)樗詣?dòng)跟蹤其在數(shù)組中的位置。在每次運(yùn)行的時(shí)候,執(zhí)行大括號(hào)內(nèi)的語(yǔ)句,同時(shí),當(dāng)前選擇的數(shù)組元素可以通過一個(gè)臨時(shí)的PHP數(shù)組循環(huán)變量來訪問。 為了更好的理解它是如何工作的,考慮使用foreach()循環(huán)對(duì)之前的例子進(jìn)行重新改寫:
- <html> <head></head> <body> My favourite bands are: <ul> <?php
- // define array $artists = array
- ('Metallica', 'Evanescence', 'Linkin Park', 'Guns n Roses');
- // loop over it // print array elements foreach ($artists as $a)
- { echo '<li>'.$a; } ?> </ul> </body> </html>
每次執(zhí)行循環(huán)時(shí),它將當(dāng)前選擇的數(shù)組元素的值放在臨時(shí)變量$a中。之后,該變量可以被PHP數(shù)組循環(huán)塊中的語(yǔ)句進(jìn)行使用。因?yàn)閒oreach()循環(huán)不需要計(jì)數(shù)器跟蹤其在數(shù)組中的位置,所以它需要更少的維護(hù)且同時(shí)比標(biāo)準(zhǔn)的for()循環(huán)更加易讀。奧,是的…,它同樣也可與關(guān)聯(lián)數(shù)組一起起作用,而不需要額外的編程。