【发布时间】:2012-09-14 00:35:32
【问题描述】:
我正在尝试创建一个数组来存储数字并将它们相加。
<input type="number" name="numbers[]"/>
我在下一行得到一个未定义的变量
foreach($numbers as $number)
我确信这可能是一些基本的东西,但我对 php 比较陌生,非常感谢您的帮助。
【问题讨论】:
标签: php html forms input name-attribute
我正在尝试创建一个数组来存储数字并将它们相加。
<input type="number" name="numbers[]"/>
我在下一行得到一个未定义的变量
foreach($numbers as $number)
我确信这可能是一些基本的东西,但我对 php 比较陌生,非常感谢您的帮助。
【问题讨论】:
标签: php html forms input name-attribute
如果你想得到一个不需要循环的数组的总和,你可以使用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>
【讨论】:
$_POST['numbers'][0] $_POST['numbers'][1] 等。如果您仍然有问题,请告诉我,以便我可以通过示例更新答案
如果您发布了inputs,您正在从一个页面显示到另一个页面,并且您需要遍历列表,您应该这样设置:
if (isset($_REQUEST['numbers']) && is_array($_REQUEST['numbers'])) {
$numbers = $_REQUEST['numbers'];
foreach ($numbers as $number) {
print $number;
}
}
【讨论】:
再添加一些代码,但这基本上意味着代码中此时还没有声明$numbers。
在前面添加这一行:
$numbers = array();
现在它不应该给你这个错误。
所以现在的问题是,$numbers 应该设置在哪里?为此,我们需要更多信息和代码。
【讨论】:
我不是 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);
?>
我希望这是对的,希望对您有所帮助。
【讨论】: