Arrays 如何使用PHP格式化数组?
我正在尝试从我创建的表单中获取数据,在该表单中,我使用数组来命名它们,如下所示:Arrays 如何使用PHP格式化数组?,arrays,Arrays,我正在尝试从我创建的表单中获取数据,在该表单中,我使用数组来命名它们,如下所示: <input type="text" name="fname[]" /> <input type="text" name="mname[]" /> <input type="text" name="lname[]" /> 但是当我使用var_dump查看值时,每个字段都将从零开始索引,如果它有重复的字段,它将再次声明为数组中的另一个数组 我想做的是用以下结构创建一个数组: $s
<input type="text" name="fname[]" />
<input type="text" name="mname[]" />
<input type="text" name="lname[]" />
但是当我使用var_dump查看值时,每个字段都将从零开始索引,如果它有重复的字段,它将再次声明为数组中的另一个数组
我想做的是用以下结构创建一个数组:
$student = array(
array(
'fname' => 'fname1',
'mname' => 'mname1',
'lname' => 'lname1'
),
array(
'fname' => 'fname2',
'mname' => 'mname3',
'lname' => 'lname2'
)
);
我尝试使用循环,但一次又一次失败。有人能帮我解决这个问题吗
提前感谢您的帮助。
<?php
for($i=0; $i<count($_POST['fname']); $i++) {
$student[] = array(
'fname' => $_POST['fname'][$i],
'mname' => $_POST['mname'][$i],
'lname' => $_POST['lname'][$i],
);
}
?>
不需要循环。您的$\u POST['student']
变量将自动成为您想要实现的数组
编辑:这没有达到预期的结果。每个字段的值都在递增student
。将n
值添加到第一组括号中,如student[n][fname]
可以获得所需的结果。我不知道如何编写脚本来动态生成这三个字段,但如果你能想出如何添加n
值,那你就太棒了。Oops,我想已经足够了,但我相信应该是以下内容(现在无法测试)。试试看:
等
(注意添加的数字索引)
然后,当您执行
回显“”时。打印($_POST['student',true)代码>您应该看到您正在寻找的结构。由于每次提交时我的表单字段编号都不同,我该如何停止循环?对不起,克林特,我在编程方面还是个新手。Stephans是一种更简单/更好的方法,但我更新了我的示例,在其中添加了一个循环,以防您对循环感到困惑。+1这也是我输入的答案。不需要了。嗨,Stephan,我有点困惑如何才能使用$_POST[]@Jag:do avar_dump($_POST['student'])获取值代码>你会看到student
字段的结构。我得到了这个:数组(6){[0]=>array(1){[“fname”]=>string(6)“fname1”}[1]=>array(1){[“mname”]=>string(6)“mname1”}[2]=>array(1){[“lname”=>string(6)“lname1”}[3]=>array(1){“fname”=>string(6)“fname2”}[4]=>array(1){[“mname”]=>string(6)“mname2”}[5]=>array(1){[“lname”]=>string(6)“lname2”}这是否与我上面指出的结构相同?@Jag:请参见我答案中的编辑;您提到这些字段是动态生成的,因此您需要在前端找到一种在空括号中添加数值的方法,如student[0][fname]
。那你就准备好了。我用了几种不同的方法对它进行了测试,这是实现您想要的数组的唯一方法。我想动态添加和删除表单字段,因此,我应该知道如何添加student[n][fname]等等。无论如何,谢谢你告诉我如何干净地打印阵列。
<?php
for($i=0; $i<count($_POST['fname']); $i++) {
$student[] = array(
'fname' => $_POST['fname'][$i],
'mname' => $_POST['mname'][$i],
'lname' => $_POST['lname'][$i],
);
}
?>
<input type="text" name="student[]['fname']" />
<input type="text" name="student[]['mname']" />
<input type="text" name="student[]['lname']" />
<input type="text" name="student[0]['fname']" />
<input type="text" name="student[0]['mname']" />
<input type="text" name="student[0]['lname']" />
<input type="text" name="student[1]['fname']" />
<input type="text" name="student[1]['mname']" />
<input type="text" name="student[1]['lname']" />
etc...