这段代码有什么作用? (2)

时间:2009-06-30 23:44:08

标签: php foreach

我不明白=>一部分。

foreach ($_POST[‘tasks’] as $task_id => $v) {

它在foreach循环中做了什么?

3 个答案:

答案 0 :(得分:12)

foreach循环遍历数组中的每个项目,就像for循环一样。在这种情况下,$ task_id是键,$ v是值。例如:

$arr = array('foo1' => 'bar1', 'foo2' => 'bar2');
foreach ($arr as $key => $value)
{
  echo $key; // Outputs "foo1" the first time around and "foo2" the second.
  echo $value; // Outputs "bar1" the first time around and" bar2" the second.
}

如果未指定任何键,如下例所示,它使用默认索引键,如下所示:

$arr = array('apple', 'banana', 'grape');
foreach ($arr as $i => $fruit)
{
  echo $i; // Echos 0 the first time around, 1 the second, and 2 the third.
  echo $fruit;
}

// Which is equivalent to:
for ($i = 0; $i < count($arr); $i++)
{
  echo $i;
  echo $arr[$i];
}

答案 1 :(得分:2)

在PHP中,所有数组都是关联数组。对于数组中的每个键和值对,将键分配给$ task_id,并将值分配给$ v。如果你没有指定另一个键,那么键是一个基于0的整数索引,但它可以是你想要的任何东西,只要该键只使用一次(尝试重用它将意味着用一个键覆盖旧的值)新价值)。

答案 2 :(得分:2)

从上下文来看,$_POST['tasks']看起来像是某种数组。 foreach()接受该数组中的每个键/值对,并将键放在$task_id中,将值放在$v中。例如,如果你有:

$a['q'] = "Hi";
$a[4] = "BLAH";

在第一次迭代中,$task_id'q'$v"Hi"。在第二次迭代中,$task_id4$v"BLAH"