函數名 |
foreach |
||||||||||||
定義和用法 |
從指定的數組中循環順序取出數值/關鍵字,分別設置在item/key中。 |
||||||||||||
語法 |
{foreach from=”data” item=”varname” [key=”k_name”] [name=”l_name”]} |
||||||||||||
參數描述 |
data,對象數組 |
||||||||||||
提示和註釋 |
指定name屬性時,與循環相關的信息可以預約變量{$smarty.foreach.循環名.屬性}的形式取得。除了total屬性外都可以在循環中參照。
|
||||||||||||
例子 |
{foreach from=$data item=”datum” name=”loop”} |
PHP中foreach循環詳解
首先要說的是,其實我對foreach循環的用法並不是很精通,說詳解,其實也只是我自己的理解,希望對你能有點幫助 。
先來看一下foreach的語法:
foreach ($array as $key=>$value)
{
……
}
爲了便於理解,我們假定這裏的$array是一個一維的相關數組,$key是數組的索引,$value是這個索引的值,它們的名字可以隨意,之所以叫$key和$value是爲了便於理解。爲了能讓你更好的理解foreach的工作過程,我們來創建一個數組:
$array = array('first'=>'ibm','second','hp');
現在我們模擬PHP服務用foreach對$array進行遍歷:
foreach ($array as $key=>$value)
{
echo $key.'=>'$value;
}
第一次循環,$key = 'first',$value = 'ibm',這個時候,實際foreach對$array執行了一個我們看不見的操作:next($array),將數組指針向前(這裏的“向前”跟PHP手冊相同,不是我們通常所理解的“向前”)移一。然後echo語句輸出"first=>ibm"。
第二次循環,首先會判斷數組$array的當前指針是否已經到了數組的末尾,如果是,結束循環,否則進入第二次循環。當然這樣的判斷在進入第一次循環的時候也會有,如果$array是一個空數組,那麼就會直接執行循環下面的語句。此時,$key = 'second','value' = 'hp',next($array)後,輸出"second=>hp"。然後進行判斷,數組指針已經到達末尾,執行下面的語句。
到這裏你應該對foreach循環有所瞭解了吧?還有一點需要的是,foreach每次只是傳遞一個值,而不是真的對數組元素進行操作。具體到上面的例子,如果你想在每個數組元素的後面加上 'company' 這個字符串,那麼$value .= 'company'這樣的操作是不行的,它並不會改變數組元素的值,這個時候你應該這樣用:$array[$key] .= 'company';
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.