在foreach中增加索引

时间:2011-12-21 17:06:32

标签: php loops

为什么我会使用$key++$key+1获得不同的输出?

如何使用foreach来引用循环中的下一个元素?

foreach($diff as $key=>$val) {

if(in_array($diff[$key],$common) && in_array($diff[$key+1],$common)) {}

if(in_array($diff[$key],$common) && in_array($diff[$key++],$common)) {}

}

5 个答案:

答案 0 :(得分:4)

  • $key + 1返回$key + 1,不会修改$key(请参阅documentation)。

  • $key++返回$key并将$key更改为$key + 1(请参阅documentation)。

您应该使用前者,因为没有理由修改$key

答案 1 :(得分:2)

$x++返回$x的旧值(在增量之前)。例如,$x=3; print $x++;将打印“3”。 它还会修改$x ,因此它不是最佳选择,除非这是您的意图。 (这里,递增将毫无用处,特别是因为修改后的键永远不会看到循环外部。)

++$x会返回$x的新值。但是,与$x++一样,仅仅获取下一个数字在语义上是错误的,因为它会修改$x

坚持使用$x + 1

答案 2 :(得分:0)

$key+1

始终只为该实例的$key添加1。它根本不会修改$key

$key++

增加$key值,并在下一个循环开始时保留该值

答案 3 :(得分:0)

$key++$key的值增加1。

$key+1$key的值加1,但不会更改它。

答案 4 :(得分:0)

$key + 1会添加到密钥,但实际上会增加$key

$key++将取$key的值并在返回后,再增加$ key(使用后)。