foreach結構的語法如下:
foreach ($array_expression as $value) {
statement
}
foreach ($array_expression as $key => $value) {
statement
}
第一種格式遍歷由$陣列運算給出的陣列上。在每個循環中,當前元素的值被賦值爲$ value,並且內部數組指針被前進一個,以便在下一個循環中訪問下一個元素。
第二種形式做同樣的事情,除了當前元素的鍵將被分配給每個循環上的變量$鍵。
以上的foreach語法也類似於以下而構建:
while (list(, $value) = each($array_expression)) {
statement
}
while (list($key, $value) = each($array_expression)) {
statement
}
即使對於環可用於處理和通過使用以下語法陣列的所有元素循環:
$count = sizeof($arr_expression);
for ($i = 0; $i < $count; $i++) {
$value = $arr_express[$i];
statement
}
for ($i = 0, $item = ''; false != ($value = $arr_expression[$i]); $i++) {
statement
}
「foreach」的嵌套循環也可用於訪問多維數組。以下是一個示例數組以及訪問其數值數據的方式。例如:
foreach ($array_expression as $arr_value) {
foreach ($array_value as $value) {
statement
}
}
下面是一個例子代碼來訪問的數組:
$contents = array(
"website_1" => array("name" => "StackOverFlow",
"url" => "http://www.stackoverflow.com",
"favorite" => "yes"),
"website_2" => array("name" => "Tip and Trick",
"url" => "http://www.tipandtrick.net",
"favorite" => "yes")
);
要檢索數據,程序員可以指定導致直接與下面的語法的值的密鑰,這將打印「我的數字生活」。
echo $contents['website_1']['name'];
但是,上面的語法在處理大型數組時,或者鍵和值的名稱動態更改時變得不實用。在這種情況下,可以使用「foreach」函數遞歸訪問數組。
foreach ($contests as $key => $list) {
echo "Website No.: " . $key . "\n";
echo "Name: " . $list['name'] . "\n";
echo "URL: " . $list['url'] . "\n";
}
輸出將是:
Website No.: website_1
Name: StackOverFlow
URL: http://www.stackoverflow.com/
Website No.: website_2
Name: Tip and Trick
URL: http://www.tipandtrick.net/
[?你嘗試過什麼(http://www.whathaveyoutried.com/)參見[問諮詢】(http://stackoverflow.com/questions/ask-advice)。 – 2013-03-15 18:54:19
$ array = $ other_array [0]; – TFennis 2013-03-15 18:54:29
得到了我錯了。只要輸出一些其他變量,並期待它輸出一些其他變量。對不起,這樣的愚蠢 – ashutosh 2013-03-15 18:56:27