我有以下表格,它传递一系列名字,姓氏和年龄。
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="first_name[]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="last_name[]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="age[]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
当我们提交表单时,我在PHP中接收了以下数组结构。
Array
(
[first_name] => Array
(
[0] => Dave
[1] => Lisa
[2] => Support
)
[last_name] => Array
(
[0] => Lucas
[1] => Newman
[2] => Services
)
[age] => Array
(
[0] => 1
[1] => 2
[2] => 3
)
[save] => Save
)
如何将上面的数组转换为以下结构,以便可以创建一个循环,一次将一条记录(first_name,last_name,age)添加到MySQL数据库/表。
e.g。 first_name [0],last_name [0]和age [0]是一条记录。
我需要数组看起来类似于以下内容,以便循环数据插入。
Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
[1] => Array
(
[first_name] => Lisa
[last_name] => Newman
[age] => 44
)
[2] => Array
(
[first_name] => Owen
[last_name] => McDowell
[age] => 36
)
[save] => Save
)
答案 0 :(得分:1)
$count = count ($array_in);
$array_out = array ();
for ($i = 0; $i < $count; $i++)
{
$array_out[] = array
(
'first_name' => $array_in['first_name'][$i],
'last_name' => $array_in['last_name'][$i],
'age' => $array_in['age'][$i]
);
}
print_r ($array_out);
答案 1 :(得分:0)
就我个人而言,我认为您应该更改表单(如果可能),以便输出您真正想要的数组。
目前,当您可以首先输出您想要的内容时,您正在输出您不希望将其更改为您想要的内容的内容。这意味着代码更少,因此更整洁,更快速,更易于维护等。
您可以将HTML表单更改为此。
我刚刚更改了每个输入的name=""
,因此每个表单都添加到同一个数组中,但每个表单(即每个first,last,age)都有自己的子数组:
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="array[0][first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[0][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[0][age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="array[1][first_name1]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[1][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[1][age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="array[2][first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="array[2][last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="array[2][age]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
哪会给你这个:
Array
(
[array] => Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
[1] => Array
(
[first_name] => Lisa
[last_name] => Newman
[age] => 44
)
[2] => Array
(
[first_name] => Owen
[last_name] => McDowell
[age] => 36
)
[save] => Save
)
)
插入数据库时,您可以轻松地遍历这些内容。
完全按照自己的意愿行事:
Array
(
[0] => Array
(
[first_name] => Steve
[last_name] => Lucas
[age] => 12
)
//etc
您必须将数组名称设置为数字,以便根据需要将每个子数组的索引设置为数字,例如:
<form method="post" action="form.php">
<label for="first_name">First Name:</label>
<input type="text" name="0[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="0[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="0[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="1[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="1[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="1[age]" id="age" />
<br />
<br />
<br />
<label for="first_name">First Name:</label>
<input type="text" name="2[first_name]" id="first_name" />
<br />
<label for="last_name">Last Name:</label>
<input type="text" name="2[last_name]" id="last_nametext" />
<br />
<label for="age">Age:</label>
<input type="text" name="2[age]" id="age" />
<br />
<input type="submit" name="save" id="save" value="Save" />
</form>
我认为这不是一个好主意。