我是PHP的新手,想知道如何才能实现以下结果。
我有一个HTML表单来上传多个文件(仅限PDF),最多可以说5个文件。 对于每个文件,它有一个select标签用于选择不同的用户(从DB检索),另一个选择标签用于不同的月份。理想情况下,如果用户逐个选择文件,而不是在中间跳过任何文件,则不复杂。
<input type=file name=pdf[] />
<select name=user[]>
<option value=a>user a</option>
<option value=b>user b</option>
<option value=c>user c</option>
</select>
<select name=month[]>
<option value=jan> jan </option>
.
.
. so on
</select>
示例:
File1.pdf --- UserA --- Jan
File2.pdf --- UserB --- Feb
Not choose ---
File4.pdf --- UserA --- Mar
Not choose ---
当我点击submit
时,数据包含几个数组,一个来自$_POST
,另一个来自$_FILES
,所以我如何重新构建这些数组并将其组合到一个新数组中,并消除那些空洞的。
赞:
Array(
[0]=> Array(user=>userA, month=>Jan, filename=>File1.pdf, type=>application/pdf, size=>1234456)
[1]=> Array(user=>userB, month=>Feb, filename=>File2.pdf, type=>application/pdf, size=>1234456)
[2]=> Array(user=>userA, month=>Mar, filename=>File4.pdf, type=>application/pdf, size=>1234456)
)
提前致谢!
答案 0 :(得分:-1)
只需给你的字段更好的名字:
result[0][user]
,result[0][month]
,result[0][pdf]
result[1][user]
,result[1][month]
,result[1][pdf]
然后只需将文件重新组合到结果中:
$results = $_POST['result'];
foreach ($results as $i => &$result) {
if (isset($_FILES['result'][$i]['pdf']) && is_array($_FILES['result'][$i]['pdf'])) {
$result = array_merge($result, $_FILES['result'][$i]['pdf']);
}
}