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