PHP foreach 中“as $key => $value”和“as $value”的区别

新手上路,请多包涵

我有一个数据库调用,我试图找出 $key => $valueforeach 循环中的作用。

我问的原因是因为这两个代码输出相同的东西,所以我试图理解为什么这样写。这是代码:

1)在foreach中使用 $key => $value

 foreach($featured as $key => $value){
  echo $value['name'];
}

这输出相同:

2)在foreach中只使用 $value

 foreach($featured as $value) {
  echo $value['name'];
}

所以我的问题是,在 foreach 循环中, $key => $value 或只是 $value 之间有什么区别。如果有区别,数组是多维的,我只想知道为什么要将 $key 传递给 $valueforeach 循环中

原文由 handmdmr 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

好吧,foreach循环中的 $key => $value 指的是关联数组中的键值对,其中键作为索引来确定值,而不是像0,1,2这样的数字,……在 PHP 中,关联数组如下所示:

 $featured = array('key1' => 'value1', 'key2' => 'value2', etc.);

PHP代码中: $featured 是循环遍历的关联数组, as $key => $value 表示每次循环运行,从数组中选择一个键值对,存储key在本地 $key 循环块内使用的变量和本地 $value 变量中的值。因此,对于上面的示例数组,foreach 循环将到达第一个键值对,如果您指定了 as $key => $value ,它将存储 'key1' 中的 $key 变量和 'value1'$value 变量中。

由于您不在循环块中使用 $key 变量,添加或删除它不会改变循环的输出,但最好包括键值对以表明它是一个关联数组。

还要注意 as $key => $value 指定是任意的。您可以将其替换为 as $foo => $bar 只要将循环块内的变量引用更改为新变量,它就可以正常工作, $foo$bar 但是制作它们 $key$value 有助于了解它们的含义。

原文由 ajiang 发布,翻译遵循 CC BY-SA 3.0 许可协议

假设您有一个这样的关联数组:

 $a = array(
    "one" => 1,
    "two" => 2,
    "three" => 3,
    "seventeen" => array('x'=>123)
);

在第一次迭代中: $key="one"$value=1

有时你需要这个键,如果你只想要值,你可以避免使用它。

In the last iteration : $key='seventeen' and $value = array('x'=>123) so to get value of the first element in this array value, you need a key , x 在这种情况下: $value['x'] =123

原文由 Charaf JRA 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题