我遇到了这段代码foreach($vars as $a=>$var){ // some process here}
,我想知道使用foreach($vars as $var){ // some process here}
时有什么区别?谢谢
运算符=>
表示键和值之间的关系。可以想象,关键点=>
的值。
编辑:
foreach
可以通过两种方式使用:
1.迭代值:
每次循环时,变量都会设置为数组中的下一个值。
例如:
$fruitColours = array(
"Banana" => "Yellow",
"Apple" => "Green",
"Plum" => "Purple",
);
foreach ($fruitColours as $colour)
{
echo "$colour<br/>'n";
}
?>
上面将显示:
Yellow
Green
Purple
仅显示数组的值。
2.在密钥和值上迭代
每次循环时,变量都被设置为下一个键值对。
例如:
$fruitColours = array(
"Banana" => "Yellow",
"Apple" => "Green",
"Plum" => "Purple",
);
foreach ($fruitColours as $fruit => $colour)
{
echo "$fruit is $colour<br/>'n";
}
?>
上面将显示:
Banana is Yellow
Apple is Green
Plum is Purple
查看phpforeach文档以获取更多参考
$vars = array(
'key1'=>'something',
'key2'=>'test',
);
foreach($vars as $key=>$value){
echo "$key:$value" . PHP_EOL;
}
将输出:
key1:something
key2:test
foreach($vars as $a=>$var){ // some process here}
遍历数组(在本例中为$vars
)。在每次迭代中,$a
被赋予实际数组项的关键字,$var
被赋予相应的值。
foreach($vars as $var){ // some process here}
与上面做的相同,但对于这个,只返回每个数组项的值。不会返回键值。
查看php手册中的这篇文章以获取更多信息。
不同之处在于,使用foreach($vars as $var){ // some process here}
只能获得值,而使用foreach($vars as $a=>$var){ // some process here}
也可以获得其密钥。
$data = array('NAME' => 'Tom', 'AGE' => 20);
foreach($data as $var){
echo $var . "'n";
}
echo "'n";
foreach($data as $key => $var){
echo $key .': '. $var . "'n";
}
将输出
Tom
20
NAME: Tom
AGE: 20