2016年5月27日 星期五

[PHP] foreach loop用法與範例



最近在研究PHP和Laravel時突然發現自己的觀念有些還沒釐清,

便上網查了資料在這裡做小筆記順便當複習~請大家參考看看^_^


在PHP中, foreach提供了一個簡單的方法可以進行重複性工作。

而foreach只能作用在array(陣列)與物件上,而且只能用同個資料型別與已經初始化的變數。

foreach有兩種形式:



<?php

foreach (array_expression as $value)

statement

?>



此形式會對array_expression的array進行迴圈。

在每一次的工作中,當前元素的值會指定給 $value,然後array內部的pointer會累加,進行下一次工作。




<?php

foreach (array_expression as $key => $value)

statement

?>




這種形式跟第一個的差別在於,

每一次的工作會指定當前元素的 `關鍵字(key)` 到 `$key` 變數。




接下來看範例




###Example1

<?php

$test=array('one','two','three');

foreach ($test as $x)

echo $x.' ';

?>



output:

>one two three




###Example2

<?php

$arr = array(1, 2, 3, 4);

foreach ($arr as &$value) {

$value = $value * 2;

echo $value.' ';

}

?>


output:

> 2 4 6 8







###Example3


<?php

$arr = array("one", "two", "three");

reset($arr);

while (list($key, $value) = each($arr)) {

echo "Key: $key; Value: $value<br />\n";

}


foreach ($arr as $key => $value) {

echo "Key: $key; Value: $value<br />\n";

}

?>



output:

>Key: 0; Value: one

>Key: 1; Value: two

>Key: 2; Value: three

>Key: 0; Value: one

>Key: 1; Value: two

>Key: 2; Value: three




###Example4: foreach做計算1~100之整數和

<?php

$sum = 0;

$a = range(1, 100);

foreach ($a as $i) {

$sum += $i;

}
 
echo "1 + 2 + .... + 99 + 100 = $sum";

?>


output:

>1 + 2 + .... + 99 + 100 = 5050