为了在PHP中创建所需的数组,需要对HTML输入字段进行哪些更改


What changes need to make to the HTML input fields in order to create desired array in PHP?

我设计了一个HTML表单,如下所示:

<form action="sample_test.php" method="post">
  <input type="text" name="fileName" value="8.png" id="fileName[]">
  <input type="text" name="fileLink" value="https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd" id="fileLink[]">
  <input type="text" name="fileName" value="2_OnClick_OK.jpg" id="fileName[]">
  <input type="text" name="fileLink" value="https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ" id="fileLink[]">
  <input type="submit" name="Submit" value="Submit File">
</form>

sample_test.php中的代码如下:

<?php
  print_r($_POST); die;
?>

我得到的输出如下:数组([fileName]=>2_OnClick_OK.jpg[fileLink]=>https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ[提交]=>提交文件)

但这并不是想要的结果。我希望以以下方式打印所需的输出阵列:

Array
        (
            [8.png] => Array
                (
                    [0] => https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd
                )
            [2_OnClick_OK.jpg]
                (
                    [0] => https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ
                )   
        )

目前,我只演示了两个元素,但在实际情况下,表单上可能会出现数百个这样的元素

那么,我需要对HTML和PHP代码进行哪些更改呢?请帮帮我。

提前谢谢。

只需修改HTML代码就无法实现您的要求,因为您希望(fileName的)值成为您获得的数组中的索引。这是不可能的,索引将始终是输入的名称。

然而,如果你看一下这里:张贴具有相同名称属性的表单字段,你将能够获得fileNamefileLink的数组,我相信你可以从那里做一些事情。

有一些错误,但您已经接近了。让name字段成为一个数组,而不是id-加上你的id需要是唯一的。

<input type="text" name="fileName[]" value="8.png" id="fileName1">
<input type="text" name="fileLink[]" value="https://www.filepicker.io/api/file/zZ993JyCT9KafUtXAzYd" id="fileLink1">
<input type="text" name="fileName[]" value="2_OnClick_OK.jpg" id="fileName2">
<input type="text" name="fileLink[]" value="https://www.filepicker.io/api/file/1w3cKCW1TMmytb7md3XQ" id="fileLink2">

没有经过测试,但应该会成功。