PHP 程式設計/foreach 迴圈
外觀
< PHP 程式設計
(重定向自 PHP 程式設計/foreach 迴圈)foreach ($array as $someVar) {
echo ($someVar . "<br />");
}
或
foreach ($array as $key => $someVar) {
echo ($key." holds the value ".$someVar."<br />");
}
該foreach迴圈是標準 for 迴圈 的一種特殊形式。上面的示例將列印$array的所有值。foreach結構是迴圈遍歷陣列的一種方便方法。
Foreach 迴圈在處理使用任意鍵索引的陣列(例如非數字鍵)時非常有用。
$array = array(
"1st" => "My House",
"2nd" => "My Car",
"3rd" => "My Lab"
);
要使用經典的for結構,您需要編寫
// get all the array keys
$arrayKeys = array_keys($array);
// get amount of values from array
$count = count($array);
// loop through the keys
for ($i = 0; $i < $count; $i++) {
// get each array value using its key
echo $array[($arrayKeys[$i])] . "<br />";
}
基本上,陣列值只能透過其鍵訪問:為了確保您獲得所有值,您首先必須列出所有存在的鍵,然後獲取所有對應的值。訪問第一個陣列值,前面的示例執行以下步驟。
$firstKey = $arrayKeys[0]; // which is '1st'
$firstValue = $array[$firstKey]; // which is 'My House' ($array('1st'))
該foreach結構為您完成了所有基礎工作。
foreach ($array as $someVar) {
echo $someVar . "<br />";
}
請注意,後面的示例更容易閱讀(和編寫)。兩者都將輸出
My House My Car My Lab
如果需要在迴圈體中使用陣列的鍵,只需新增變數,如下面的語句所示。短語 '$myKey => $value' 使鍵的值可訪問。
foreach ($array as $myKey => $value) {
// use $myKey
}
請注意,這在構造 HTML 中的下拉列表時非常有用。您可以使用 foreach 迴圈將$myKey變數插入value="..."部分,將$value作為實際文字。
這種形式模仿我們為 $array 元素使用自定義鍵的方式。它不僅將 $array 的元素分配給 $someVar,而且還將這些元素的鍵分配給 $i。
<?php
$array = array("1st" => "My House", "2nd" => "My Car", "3rd" => "My Lab");
foreach ($array as $key => $someVar) {
echo $key . ": " . $someVar . "<br />\n";
}
?>
1st: My House<br /> 2nd: My Car<br /> 3rd: My Lab<br />
1st: My House 2nd: My Car 3rd: My Lab
請注意,如果您在foreach迴圈中更改了分配的變數,則更改不會反映到陣列中。因此,如果您需要更改陣列的元素,則需要使用陣列鍵更改它們。示例
$array = array(
"1st" => "My House",
"2nd" => "My Car",
"3rd" => "My Lab"
);
foreach ($array as $i => $someVar) {
// OK
if($someVar == 'My Lab') {
$array[$i] = 'My Laboratory';
}
// doesn't update the array
$someVar = 'Foo';
}