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


How to store multiple data into an array

我有一个配置文件页面,用户可以在其中编辑他们的配置文件,我为他们提供了一个技能表单,他们可以在其中输入技能名称&你在其中完美程度的百分比->

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%
    )

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

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

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

然后在您的php脚本中:

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

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

使用您喜欢的数组格式:

<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[]来动态创建它们,而不是使用数字索引,但如果您尝试使用复选框来创建它们,则不会像您想象的那样起作用。