PHP 在循环数组的时候有个挺有意思的写法:foreach (array_expression as $value)
statement
foreach (array_expression as $key => $value)
statement
第一种写法是循环的时候只赋 value 值,第二种写法是循环的时候赋 key 和 value 值。
先看看 foreach 第一种<?php
$arr = array(1, 2, 3);
foreach ($arr as &$value) {
$value = $value * 2;
}
print_r($arr);
?>
结果为:Array ( [0] => 2 [1] => 4 [2] => 6 )
特别注意,由于 $value 前面加了一个 &,表示是引用,所以 $arr 中的值会变,否则的话,只是 $value 这个局部变量变,$arr 不会变。
再看看 foreach 第二种<?php
$arr = array(
'jack' => 80,
'lucy' => 90,
'lily' => 85
);
foreach ($arr as $key => $value) {
print($key."-".$value."
");
}
?>
结果如下:
jack-80
lucy-90
lily-85
要说明的是 $key、$value 并不是固定命名,我们可以换成其他名称,比如:$name、$score。
接下来谈谈 each,给个官方示例吧<?php
$fruit = array('a' => 'apple', 'b' => 'banana', 'c' => 'cranberry');
reset($fruit);
while (list($key, $val) = each($fruit)) {
echo "$key => $val\n";
}
?>
运行结果如下:
a => apple
b => banana
c => cranberry