如何将多个数据存储到数组中

时间:2016-05-10 22:12:00

标签: php mysql arrays

我有一个个人资料页面,用户可以在其中编辑他们的个人资料,我已经为他们提供了一个技能表格,他们可以输入技能名称和你完美的百分比如同>

Skill1 percentage 86%  Add more

这个添加更多按钮动态添加输入字段

所以现在当我尝试在这里保存这些数据时,我得到的是$ _POST

$_POST['skill'];
$_POST['percentage'];

我尝试将它们添加到数组中,以便我可以将其保存到数据库,但由于多个动态字段,它会变得混乱和放大那么这就是我在数组中收到的内容

    Array
(
    [0] => Photoshop
    [1] => 55%
    [2] => PHP
    [3] => 35%
)

我怎么能轻易知道这个百分比属于这个技能

有时数组看起来像

Array
    (
        [0] => 55%
        [1] => Photoshop
        [2] => PHP
        [3] => 35%
    )

那么如何将动态字段数据存储到数组中,以便以后可以正确显示给用户

2 个答案:

答案 0 :(得分:3)

使用您喜欢的数组格式:

<input name='skill[0]'>
<input name='percentage[0]'>
<input name='skill[1]'>
<input name='percentage[1]'>

这将为您提供索引匹配的两个数组,例如:

(
    [skills] => Array
        (
            [0] => Photoshop
            [1] => Word
        )
)

(
    [percentage] => Array
        (
            [0] => 65%
            [1] => 90%
        )
)

然后,您可以使用array_combine($_POST['skills'], $_POST['percentage'])来获得类似的内容:

Array(
        [Photoshop] => 65%
        [Word] => 90%
     )

您可以使用name='skill[]name='percentage[]动态创建它们而不是使用数字索引,但如果您尝试使用复选框执行此操作,它将无法正常工作。

答案 1 :(得分:3)

如果要传递多个值,则需要在表单中设置字段数组,例如:

<input type="text" name="skills[]">
<input type="text" name="percentage[]">

然后在你的php脚本中:

foreach($_POST['skills'] as $index => $value) {
  $skills[$value] = $_POST['percentage'][$index];
}

假设技能和百分比是具有相同大小的数组。