我从一个表单中收到两个数组。在 .php 文件中,我需要将每个数组的值插入到表的一列中。
- 使用 foreach 循环访问一个数组的元素并仅完成一列的插入。当我对下一个数组做同样的事情时,我发现每行中对应的第一列元素为空,而对于第一个数组,对应的第二列元素为空。有没有办法避免这种情况并一个接一个地插入数组元素?
- 我知道 foreach 不能应用于两个数组,所以有没有其他方法可以同时访问两个数组以插入表中?
谢谢。
问问题
290 次
1 回答
0
您可以使用 foreach 循环:
foreach($_POST['someField_1'] as $key => $value)
{
$fieldOne = $value;
$fieldTwo = $_POST['someField_2'][$key];
}
显然将 _POST 变量更改为您为字段命名的任何内容。只要您的字段名称命名为:name="someField_1[]"
并且name="someField_2[]"
您可以通过这种方式使用 foreach 循环。
编辑
将此 HTML 用于您的输入表单:
Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]">
Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]">
Forename: <input type="text" name="forename[]"> Surname: <input type="text" name="surname[]">
因此,该表格允许您输入最多 3 人的名字和姓氏。每个字段具有完全相同的名称:forename[]
和surname[]
要检索每个值,您将使用以下 PHP:
foreach($_POST['forename'] as $key => $forename)
{
echo 'Forename: ' . $forename;
echo ' ';
echo 'Surname: ' . $_POST['surname'][$key] . '<br />';
}
这是有效的,因为当您提交一个像forename[]
,最后带有方括号的字段时,PHP 会自动将其转换为数组。$key
是一个从 0 开始的数字,不管有多少字段都会继续。
PHP 使用$key
来检索正确的字段。您也可以像这样编写 HTML:
Forename: <input type="text" name="forename[0]"> Surname: <input type="text" name="surname[0]">
Forename: <input type="text" name="forename[1]"> Surname: <input type="text" name="surname[1]">
Forename: <input type="text" name="forename[2]"> Surname: <input type="text" name="surname[2]">
你看我在方括号之间放了一个数字吗?PHP 将检测到这一点并循环遍历数组。
你甚至可以使用for
循环:
for($i = 0; $i<count($_POST['forename']); $i++)
{
echo 'Forename: ' . $_POST['forename'][$i];
echo 'Surname: ' . $_POST['surname'][$i];
}
于 2013-06-05T08:51:18.673 回答