在 PHP 中,我們可以使用下列迴圈語句:
while
只要指定的條件成立,則迴圈執行代碼塊
do...while
首先執行一次代碼塊,然後在指定的條件成立時重複這個迴圈
for
迴圈執行代碼塊指定的次數
foreach
根據數組中每個元素來迴圈代碼塊
先我們利用php內建函數對php數組進行遍曆
隨手可得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); ?> |
利用foreach 遍曆php數組
PHP foreach() 文法結構用於遍曆操作或輸出數組,foreach() 僅能用於遍曆數組或對象,當試圖將其用於其它資料類型或者一個未初始化的變數時會產生錯誤。
代碼如下 |
複製代碼 |
list = array('upid'=>'1','title'=>'公司新聞','list'=>array('id'=>'3','title'=>'公司新聞標題測試!','intime'=>'2009-29-5')); foreach ($list as $v=>$a) { echo $a['upid'] .'-'. $a['title']; foreach ($a['list'] as $b){ echo $b['title']; } } |
使用數組索引值
代碼如下 |
複製代碼 |
<?php $arr_age = array("wang"=>18, "li"=>20, "zhang"=>25); foreach ($arr_age as $key=>$age) { echo $key,': ',$age,'<br />'; } ?>
|
運行例子輸出:
wang: 18
li: 20
zhang: 25
當 foreach 開始執行時,數組內部的指標會自動指向第一個單元,這意味著不需要在 foreach 迴圈之前調用 reset()。
for() 迴圈遍曆數組
如果是操作連續索引值的數組,也可以採用 for() 迴圈來遍曆數組:
代碼如下 |
複製代碼 |
<pre> <?php $shuzu=array("ni","wo","ta","php","mysql"); $count=count($shuzu); echo "使用for遍曆數組"; echo "<br/>$nbsp;<br/>"; for($i=0;$i<$count;$i++) { $j=$i+1; echo "第{$j}個元素是: $shuzu[$i]"; echo "<br/>$nbsp;<br/>"; } ?> </pre> 25 |
也可以用 list() 和 each() 結合來遍曆php數組,但測試發現效率不如 foreach() 。
list函數
list() 函數用數組中的元素為一組變數賦值。
注意,與 array() 類似,list() 實際上是一種語言結構,不是函數。
文法
list(var1,var2...)參數 描述
var1 必需。第一個需要賦值的變數。
var2 可選。可以有多個變數。
提示和注釋
注釋:該函數只用於數字索引的數組,且假定數字索引從 0 開始
*/
代碼如下 |
複製代碼 |
$colors = array('red','blue','green','yellow'); while(list($key,$val) = each($colors)) { echo "other list of $val.<br />"; } |
更多詳細內容請查看:http://www.111cn.net/phper/php/36112.htm