1

我正在尝试创建一个数组来存储数字并将它们加在一起。

<input type="number" name="numbers[]"/>

我在下一行得到一个未定义的变量

foreach($numbers as $number)

我确信这可能是一些基本的东西,但我对 php 比较陌生,我们将不胜感激。

4

4 回答 4

2

如果您将input要显示的 s 从一页发布到另一页,并且需要遍历列表,则应按如下方式进行设置:

if (isset($_REQUEST['numbers']) && is_array($_REQUEST['numbers'])) {
  $numbers = $_REQUEST['numbers'];

  foreach ($numbers as $number) {
    print $number;
  }
}
于 2012-09-21T15:04:42.133 回答
2

如果您想获得不需要循环的数组的总和,您可以使用array_sum

例子

<?php
if (isset($_POST['numbers'])) {
    echo array_sum($_POST['numbers']);
}

?>

<form method="POST">
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="number" name="numbers[]"/>
<input type="submit" value="add"/>
</form>
于 2012-09-21T15:07:31.243 回答
0

添加更多代码,但这基本上意味着 $numbers 尚未在代码中声明。

在前面添加这一行:

$numbers = array();

现在它不应该给你这个错误。

所以现在的问题是,$numbers 应该设置在哪里?为此,我们需要更多信息和代码。

于 2012-09-21T15:04:31.043 回答
0

我不是 PHP 专家,但如果我理解正确并且您尝试将变量放入数组中,您需要说出我假设的数组的哪一部分。我很确定这$array[i]$array不一样,如果你试着把东西放进$array去,一次只能拿着一个东西。如果您只是收集某人从表单中输入的一堆数字,那么您可以做这样的事情。

//For the form
<form action="formHandler.php" method="post">
  <input type="text" name="number1">
  <input type="text" name="number2">
  //continue in this manner for as many numbers as you need to gather.
</form>

//for the PHP side of it.
<?php
  $x=1;
  $numbersArray = array();
  for($i=0; $i<10; $i++){
   $numbersArray[$i] = $_POST['number'.$x];
   $x++;
  }
//to add them up
$total=array_sum($numbersArray);
?>

我希望这是正确的,我希望它有所帮助。

于 2012-09-21T15:14:17.850 回答