<input name="name[]">
<input name="email[]">
<input name="name[]">
<input name="email[]">
<input name="name[]">
<input name="email[]">
....
....
在提交包含这些字段的表单时,我正在尝试构建一个看起来像这样的数组:
array(
array(
'name'=> 'name1',
'email' => 'email1'
);
array(
'name'=> 'name2',
'email' => 'email3'
);
array( ...
....
....
);
我尝试这样做的原因是,我想序列化这个数组并将其作为一个数据条目保存到我的数据库中。这可能吗?
答案 0 :(得分:3)
您可以使用循环逻辑
if($_SERVER['REQUEST_METHOD']=='POST'){
foreach ($_POST as $k=>$v){
if(is_array($v)){
foreach ($v as $sk=>$sv){
$arr[$sk][$k]=$sv;
}
}
}
echo "<pre>";
print_r($arr);
}
答案 1 :(得分:2)
更改您的命名:
<input name="myform[0][name]">
<input name="myform[0][email]">
<input name="myform[1][name]">
<input name="myform[1][email]">
您的数据阵列:
$data = $_POST["myform"]
答案 2 :(得分:1)
要生成您正在寻找的结构,您可以这样做:
$data = array();
foreach ($_POST['email'] as $id => $email) {
$data[$id]['email'] = $email;
}
foreach ($_POST['name'] as $id => $name) {
$data[$id]['name'] = $name;
}
这给你一些类似的东西:
Array
(
[0] => Array
(
[email] => email1
[name] => name1
)
[1] => Array
(
[email] => email2
[name] => name2
)
[2] => Array
(
[email] => email3
[name] => name3
)
)
答案 3 :(得分:-2)
您只需序列化整个$_POST
并保存即可。
serialize($_POST);
或者
serialize($_GET);