我的尝试在下面;首先以while loop
开始创建数组,然后使用foreach
遍历每个数组以尝试计算数组中的每个项目。
$begin = $_POST['startpoint'];
$end = $_POST['endpoint'];
$current_start = $begin;
$num1 = 3;
$num2 = 355;
while ($i = $begin; $i <= $end; ++$i) {
$array[] = $i;
foreach ($array as &$counted) {
echo '<span>Star SC ' + $counted + ' mag ' + $num1 + $num2;
}
}
所需的输出将是这样的;如果用户插入了10002
和80000
:
输出1。)明星C 69998
mag ...
和
输出2。)
10002
10003
10004
10005
(一直到80000
)
HTML:
<form action="script.php" method="post">
<input type="number" name="startpoint" min="100000" max="999998">
<input type="number" name="endpoint" min="100001" max="999999">
<input type="submit" name="submit" value="Go!" />
</form>
更多细节:我想算一下,每个用户输入数字之间的数学计算(即69998
);并显示每个数字之间,所以用上面的用户例子;它将是10002
,10003
,10004
- 一直到80000
。
答案 0 :(得分:3)
如果您想要做的就是输出每一行,您可以这样做:
$begin = 10002;
$end = 80000;
$current_start = $begin;
$num1 = 3;
$num2 = 355;
for($i = $begin; $i <= $end; $i++) {
echo '<span>Star SC ' . $i . ' mag ' . $num1 .', '. $num2;
}
.
是PHP中的串联,而不是+
,您需要for()
循环,而不是while()
。此外,您不需要为输出使用另一个数组。
输出
<span>Star SC 10002 mag 3, 355
...
<span>Star SC 80000 mag 3, 355
答案 1 :(得分:2)
我真的不明白你的意图,但对于一个内存友好的解决方案,你应该使用生成器功能。
function numbers_between($n1, $n2) {
for($n1; $n1 <= $n2; $n1++) {
yield $n1;
}
}
$generator = numbers_between(1,5);
foreach($generator as $genval){
echo $genval."\n";
}
如果你想要总数,只需做基本数学,比如
($num2 - $num1)+1
答案 2 :(得分:0)
正确的方法是
foreach (range($begin, $end) as $number) {
echo $number;
}