foreach迴圈用法執行個體代碼

來源:互聯網
上載者:User
在PHP中的foreach是用來進行迴圈對一個數組的所有元素。

foreach基本文法如下:

foreach ($array_variable as $value) { [code to execute] } or FOREACH ($array_variable as $key => $value) { [code to execute] }

在這兩種情況下,多次[代碼執行]將被處死是等於在$ array_variable數組元素的個數。
讓我們來看一個例子。假設我們有下面的程式碼片段:

$array1 = array(1,2,3,4,5); FOREACH ($array1 as $abc) { print "new value is " . $abc*10 . "<br>"; }

輸出結果
new value is 10
new value is 20
new value is 30
new value is 40
new value is 50
foreach迴圈以上經曆了所有5個元素的數組$ array1,每次列印出一份聲明中含有10倍的數組元素的值。
foreach作用是遍曆當前數組的所有值出來並且賦給$var
官方給出的執行個體代碼:

<?php /* foreach example 1: value only */ $a = array(1, 2, 3, 17); foreach ($a as $v) { echo "Current value of \$a: $v.\n"; } /* foreach example 2: value (with key printed for illustration) */ $a = array(1, 2, 3, 17); $i = 0; /* for illustrative purposes only */ foreach ($a as $v) { echo "\$a[$i] => $v.\n"; $i++; } /* foreach example 3: key and value */ $a = array( "one" => 1, "two" => 2, "three" => 3, "seventeen" => 17 ); foreach ($a as $k => $v) { echo "\$a[$k] => $v.\n"; } /* foreach example 4: multi-dimensional arrays */ $a = array(); $a[0][0] = "a"; $a[0][1] = "b"; $a[1][0] = "y"; $a[1][1] = "z"; foreach ($a as $v1) { foreach ($v1 as $v2) { echo "$v2\n"; } } /* foreach example 5: dynamic arrays */ foreach (array(1, 2, 3, 4, 5) as $v) { echo "$v\n"; } ?>

再來看一個foreach 對多維資料操作執行個體

$s = array(array(1,2),array(3,4),array(5,6)); foreach( $s as $v => $_v ) { foreach( $_v as $vc => $_vc ) { echo $_vc[0],'|'.$_vc[1],'<br />'; //print_r($_vc); } }

先來看一下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';

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.