我們想要得到大堆數據,你就要對數組進行循環,我們現在就來看看PHP數組循環得到數據。因要負責將數據放置在數組內,現在,如何將其取出呢? 從數組中檢索數據非常簡單:所有你所需要做的就是使用索引號來訪問數組的適當元素。為了讀取整個數組的內容,你只需要使用你在該教程第三章中所學到的循環結構來簡單的對其進行循環操作即可。
來一個快捷的例子如何?
- <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
當你運行該腳本時,你會看到下面的結果:
- My favourite bands are: Metallica Evanescence Linkin Park Guns n Roses
在這個實例中,我首先定義了一個數組,然後使用for()循環做下面的工作:遍歷該數組,使用索引符號取得元素,然後一個接一個的顯示它們。 在這裡,我將吸引你們的注意力在sizeof()函數上。該函數是最重要也是最常用的數組函數之一。其返回數組的大小(讀取:數組內元素的個數)。它大部分用於循環計數器中以確保循環次數和數組中的所有元素的個數一致。 如果你正在使用聯合數組,那麼隨手可得array_keys()和array_values()函數以用來得到數組中所有關鍵字和對應的值的列表。
- '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); ?>
然而,這裡還有一種更簡單的方法來提取數組中的所有元素。PHP4.0介紹了一種經設計專門用於對數組反復枚舉目的的非常新的循環類型:foreach()循環(它的語法結構類似於同名的Perl結構)。
下面是其語法格式:
- foreach ($array as $temp) { do this! }
foreach()循環對作為參數傳遞給它的數組的每一個元素運行一次,在每次重復時向前遍歷該數組。和for()循環不同,它不需要計數器或調用函數 sizeof(),因為它自動跟蹤其在數組中的位置。在每次運行的時候,執行大括號內的語句,同時,當前選擇的數組元素可以通過一個臨時的PHP數組循環變量來訪問。 為了更好的理解它是如何工作的,考慮使用foreach()循環對之前的例子進行重新改寫:
- <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>
每次執行循環時,它將當前選擇的數組元素的值放在臨時變量$a中。之後,該變量可以被PHP數組循環塊中的語句進行使用。因為foreach()循環不需要計數器跟蹤其在數組中的位置,所以它需要更少的維護且同時比標准的for()循環更加易讀。奧,是的…,它同樣也可與關聯數組一起起作用,而不需要額外的編程。