【问题标题】:What does this code do? (2)这段代码有什么作用? (2)
【发布时间】:2009-06-30 23:44:08
【问题描述】:

我不明白 => 部分。

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

它在 foreach 循环中做了什么?

【问题讨论】:

  • 我建议在这里提问之前阅读语言文档。您可以在us3.php.net/manual/en/index.php 找到 PHP 语言文档
  • 这是个好问题,因为它具体、清晰,很多人都想知道答案
  • cobbal:没错,但它非常基础。我从来没有对它投反对票,也不打算这样做,但我可以看到投反对票的人来自哪里。在语言文档中,有些事情可以比在 SO 上更好地回答。

标签: php foreach


【解决方案1】:

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];
}

【讨论】:

  • 看起来更像是一张地图而不是一个数组。
  • @Pablo: PHP 'arrays' 是非常有用的小东西,可以用作地图或数组。
  • 其实我觉得PHP数组都是关联数组比较好。默认情况下,键是一个从 0 开始的整数值,但您可以随意设置。
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    【讨论】:

    • 我不确定您对语法的理解是否正确...?
    • 是的。 $task_id 是键,$v 是映射到该键的值。 PHP 中的数组是关联数组。
    • 虽然是的,但我的措辞应该改进。让我来做。
    • 好的。您回答的措辞表明 $task_id 和 $v 具有相同的值。
    • 我认为这要好得多。
    猜你喜欢
    • 1970-01-01
    • 2010-11-07
    • 2011-04-13
    • 2011-05-09
    • 1970-01-01
    • 1970-01-01
    • 2020-01-04
    • 2011-12-31
    相关资源
    最近更新 更多