我有一个类似下面的表单发布到contacts.php,用户可以使用jquery动态添加更多.
<input type="text" name="name[]" />
<input type="text" name="email[]" />
<input type="text" name="name[]" />
<input type="text" name="email[]" />
<input type="text" name="name[]" />
<input type="text" name="email[]" />
Run Code Online (Sandbox Code Playgroud)
如果我在PHP中用下面的代码回显它们
$name = $_POST['name'];
$email = $_POST['account'];
foreach( $name as $v ) {
print $v;
}
foreach( $email as $v ) {
print $v;
}
Run Code Online (Sandbox Code Playgroud)
我会得到这样的东西:
name1name2name3email1email2email3
我怎样才能将这些数组变成类似下面的代码
function show_Names($n, $m)
{
return("The name is $n and email is $m, thank you");
}
$a = array("name1", "name2", "name3");
$b = array("email1", "email2", "email3");
$c = array_map("show_Names", $a, $b);
print_r($c);
Run Code Online (Sandbox Code Playgroud)
所以我的输出是这样的:
名称是name1,email是email1,谢谢你
的名字是name2,email是email2,谢谢你
的名字是name3,email是email3,谢谢
感谢您的帮助或建议
Jef*_*ake 142
它们已经在数组中:$name
是一个数组,就是这样$email
所以你需要做的就是添加一些处理来攻击两个数组:
$name = $_POST['name'];
$email = $_POST['account'];
foreach( $name as $key => $n ) {
print "The name is ".$n." and email is ".$email[$key].", thank you\n";
}
Run Code Online (Sandbox Code Playgroud)
要处理更多输入,只需扩展模式:
$name = $_POST['name'];
$email = $_POST['account'];
$location = $_POST['location'];
foreach( $name as $key => $n ) {
print "The name is ".$n.", email is ".$email[$key].
", and location is ".$location[$key].". Thank you\n";
}
Run Code Online (Sandbox Code Playgroud)
Vol*_*erK 47
例如,通过命名字段,如
<input type="text" name="item[0][name]" />
<input type="text" name="item[0][email]" />
<input type="text" name="item[1][name]" />
<input type="text" name="item[1][email]" />
<input type="text" name="item[2][name]" />
<input type="text" name="item[2][email]" />
Run Code Online (Sandbox Code Playgroud)
(通过javascript添加元素时也可以)
相应的php脚本可能看起来像
function show_Names($e)
{
return "The name is $e[name] and email is $e[email], thank you";
}
$c = array_map("show_Names", $_POST['item']);
print_r($c);
Run Code Online (Sandbox Code Playgroud)