1

我想通过 html 形式在 php 数组中添加新值。我在php中写了如下内容:

$b=array();
$b[]=$_POST['unos'];

在html中是这样的:

<form action="?" method="post">
<input type="number" name="unos"  id="unos">
</form> 

该代码完成了这项工作,但仅用于一个值。换句话说,我在问如何在数组中导入多个值。我在 html 输入表单中添加了 value="3"
,但这当然不起作用,或者它只是答案的一部分。如何告诉 php 允许通过 html 表单在数组中添加多个值?

更新:

我想在一个输入字段中导入更多值,例如用“,”或任何约定分隔。

更新:

 <?php
 $unos=array();
 $unos[]=$_POST['unos'];
 $rezultat=count($unos); /*number of n's*/
 $zbir=array_sum($unos); /*total sum of n's*/
 $av=$zbir/$rezultat;    /*average value of n's*/
 echo "average value is $av</br>";
 }
 ?>
 <form action="?" method="post">
 <input type="number" name="unos"  id="unos">
 <input type="submit" value="Submit">
 </form> 

该代码计算n的平均值。我是初学者,只想知道如何通过 html 由用户添加数组的值。我想知道如何在 1 个输入文件中做到这一点的原因是因为我不想用输入字段的数量来限制值的数量. 我想让该用户可以根据需要添加任意数量的值。对不起,我的英语不完美。

4

4 回答 4

1

我对你的要求有点困惑,但我假设你想制作unos一个数组。你可以这样做:

<input type="number" name="unos[]"  id="unos0">
<input type="number" name="unos[]"  id="unos1">
<input type="number" name="unos[]"  id="unos2">
<input type="number" name="unos[]"  id="unos3">
<input type="number" name="unos[]"  id="unos4">

然后为了通过 PHP 访问它们,只需使用$_POST['unos'][$n]$n 是一个整数。你也可以循环$_POST['unos']

于 2012-11-07T23:51:46.497 回答
1

使用类似的东西:

<form ...>
  <input type="text" name="unos[]" value="1" />
  <input type="text" name="unos[]" value="2" />
</form>

方括号告诉 PHP 将值存储到数组中:

echo $_POST['unos'][0]; // "1"
echo $_POST['unos'][1]; // "2"
于 2012-11-07T23:52:01.583 回答
1

您可以有多个表单输入,并给它们一个数组样式的名称:

<form action="whatever.php" method="post">
    <input type="number" name="unos[]"/>
    <input type="number" name="unos[]"/>
    <input type="number" name="unos[]"/>
</form>

然后在 PHP 中你可以访问数组:

foreach($_POST['unos'] as $unos) {
    ...
}
于 2012-11-07T23:52:28.027 回答
0
<input type="number" name="unos[]">
<input type="number" name="unos[]">
<input type="number" name="unos[]">
etc.

以上是将表单值拉入数组的标准,但是,鉴于您的更新:

// Assuming "," separated values
   $unos = explode(",", $_POST['unos']);

   foreach ($unos as $item) {
       echo $item; // Do something with item
   }
于 2012-11-07T23:51:07.527 回答