首先要說的是,其實我對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';
太長了,二維或多維數組的用法放在下一篇。