【问题标题】:php create array with key by html inputphp通过html输入键创建数组
【发布时间】:2017-05-24 18:53:03
【问题描述】:

我正在尝试使用 html 输入创建带有键的数组 这是我的html输入

<form method="post" action="">
<input type="text" name="name[][you]" value="" />
<input type="text" name="name[][he]" value="" />
<input type="text" name="name[][she]" value="" />
<input type="text" name="name[][you]" value="" />
<input type="text" name="name[][he]" value="" />
<input type="text" name="name[][she]" value="" />
<button type="submit">go</button>
</form>

我的输出是

Array ( [0] => Array ( [you] => jhon ) [1] => Array ( [he] => joy ) [2] => Array ( [she] => sarah ) [3] => Array ( [you] => samm ) [4] => Array ( [he] => petter ) [5] => Array ( [she] => susan ) )

但我希望数组是这样的

Array( [0]=> array ( [you] => jhon [he] => joy [she] => sarah )[1]=> array ( [you] => pitter [he] => tom [she] => suszan ) )

有没有办法做到这一点

【问题讨论】:

  • 为什么不在括号内写出确切的数字 - &lt;input type="text" name="name[0][you]" value="" /&gt; 等等?

标签: php arrays input


【解决方案1】:

这样试试 ==>

<form method="post" action="">
<input type="text" name="name[0][you]" value="" />
<input type="text" name="name[0][he]" value="" />
<input type="text" name="name[0][she]" value="" />
<input type="text" name="name[1][you]" value="" />
<input type="text" name="name[1][he]" value="" />
<input type="text" name="name[1][she]" value="" />
<button type="submit">go</button>
</form>

<form method="post" action="">
    <?php $n = 2; // how many interval you want
    for ($i = 0; $i < $n; $i++) {
        ?>
        <input type="text" name="name[<?php echo $i; ?>][you]" value="" />
        <input type="text" name="name[<?php echo $i; ?>][he]" value="" />
        <input type="text" name="name[<?php echo $i; ?>][she]" value="" />

<?php } ?>
</form>

【讨论】:

  • 是的,只是在输入中没有设置键号
  • @MounerMostafa 然后尝试我给出的第二个动态解决方案
【解决方案2】:

如果你想输出一个有两个孩子的数组,那么手动设置键,前三个输入为 name[0],后三个输入为 name[1]。

【讨论】:

  • 所以如果不使用输入中的键号就无法做到这一点?
【解决方案3】:

每次你写name="[][key]" php 都会自动增加密钥。 如果你写[] php 之类的语法,则增加数组的索引。

小解释 例如:
如果你写一个这样的数组

$array[] = "msg1";
$array[] = "msg2";
$array[] = "msg3";

$array 长度为 2(3 个元素,因为它从 0 开始),与

$array[0] = "msg1";
$array[1] = "msg2";
$array[2] = "msg3";

这是上面的different

$array[0] = "msg1";
$array[1] = "msg2";
$array[1] = "msg3";

这个数组只有 1 个长度(只有 2 个元素)

您的问题的解决方案是:

<form method="post" action="">
  <input type="text" name="name[0][you]" value="" />
  <input type="text" name="name[0][he]" value="" />
  <input type="text" name="name[0][she]" value="" />
  <input type="text" name="name[1][you]" value="" />
  <input type="text" name="name[1][he]" value="" />
  <input type="text" name="name[1][she]" value="" />
  <button type="submit">go</button>
</form>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-09
    • 2021-09-05
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2017-08-31
    • 1970-01-01
    相关资源
    最近更新 更多