foreach($vars表示$a=>;$var){}是什么意思


What does foreach($vars as $a=>$var){} mean?

我遇到了这段代码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