PHP创建从表单输入字段的阵列[闭合](PHP creating an array from for

2019-10-17 06:23发布

我试图创建一个数组来存储数字并把它们相加。

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

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

foreach($numbers as $number)

我敢肯定,这可能是一些基本的东西,但我是比较新的PHP和帮助,将不胜感激。

Answer 1:

如果你想获得你不需要循环,可以使用数组的总和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>


Answer 2:

如果您发布的input是你正在展示从一个网页到另一个,你需要在列表中运行,你应该将其设置是这样的:

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

  foreach ($numbers as $number) {
    print $number;
  }
}


Answer 3:

添加一些更多的代码,但它基本上意味着$数字并不在代码中的这一点上宣布呢。

前加入这一行:

$numbers = array();

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

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



Answer 4:

我不是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);
?>

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



文章来源: PHP creating an array from form input fields [closed]