PHP Foreach循环迭代单个元素?

时间:2012-02-28 14:55:17

标签: php foreach

有人能解释一下这是做什么的吗?

foreach($_POST['Detail'] as $i_Detail => &$a_Detail)
{
    ...
}

当然我得到了foreach的原则,但这看起来像是在尝试迭代数组的单个元素!

3 个答案:

答案 0 :(得分:4)

数组的单个元素本身可能是一个数组。

编辑:此外,您通过引用传递存储在数组中的值,因此无论您在循环中对$ a_detail执行的操作,实际上都会更改它所代表的数组中的值。

答案 1 :(得分:3)

使用html输入,您实际上可以将数组传递给php,

<input name="Detail[a]" />
<input name="Detail[b]" />

答案 2 :(得分:1)

所以,这里实际发生的是这个foreach循环将键和值拉入循环。如果我们假设变量$_POST['detail']是一个如下所示的数组:

$_POST['detail']['name'] = 'Joe';
$_POST['detail']['last'] = 'Smith';

调用foreach循环时,

foreach($_POST['Detail'] as $i_Detail => &$a_Detail)

$i_Detail是数组的关键。因此,在这种情况下,在第一次传递时它将是名称,在下一次传球中它将是最后一次。 $a_Detail是该键的数组值 - 所以首先传递的是Joe,最后一次传递它将是Smith。

通常你会看到它被表示为foreach($item as $key=>$value) - 它肯定能更好地表示那里发生的事情。