<?
set_time_limit(200);
?>
四、 数组遍历
· foreach
在 PHP4中,新增了一个循环语句 foreach,它很像是 perl和其它的语言,你可以给它一个阵列,让它来取出阵列的值。它有下列这二个语法,第二个语法是较次要的,但是可用来作为第一个语法的延伸。
foreach(array_expression as $value) statement
foreach(array_expression as $key => $value) statement
第一个形式的循环,它会在每个循环上,将目前元素的值分配给 $value,并且向后移动阵列的內部指针,所以在下一个循环的时候,你就会看到下一个元素了。
第二个形式的循环和第一个是相同的,不同的是它会在每个循环将目前元素的索引值分配给变量 $key。
注意 : 当 foreach第一次开始执行的时候,它会把阵列的內部指针重新设定到阵列的第一个元素,意思是说,在使用 foreach之前,你不必再去调用 reset( )。
注意 : foreach的功能是复制,而不是阵列它本身,因此并不会改变阵列指针
下面范例的功能都是相同的 :
<?php
reset ($arr);
while (list(, $value) = each ($arr)) {
echo "Value: $value<br>
";
}
foreach ($arr as $value) {
echo "Value: $value<br>
";
}
?>
下面范例的功能也都是相同的 :
<?php
reset ($arr);
while (list($key, $value) = each ($arr)) {
echo "Key: $key; Value: $value<br>
";
}
foreach ($arr as $key => $value) {
echo "Key: $key; Value: $value<br>
";
}
?>
以下的范例将说明 foreach的用法 :
<?php
/* foreach example 1: value only */
$a = array (1, 2, 3, 17);
foreach ($a as $v) {
print "Current value of $a: $v.
";
}
/* foreach example 2: key and value */
$a = array (
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach($a as $k => $v) {
print "$a[$k] => $v.
";
}
?>