首先要說的是,其實我對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';
新聞熱點
疑難解答