php,如何遍历数字并在计算新数字时进行添加

php,如何遍历数字并在计算新数字时进行添加,php,math,Php,Math,我编写了一个简单的代码来计算一个数学方程,但我想迭代从$start到$end的数字。我正在制作一个游戏,这个页面将计算达到下一个级别所需的经验量,并将其插入数据库。从$start迭代到$end并计算该级别所需的exp量的最佳方法是什么 代码: 因为它现在在计算第一级,但我一辈子都不知道如何让它通过,直到它达到$end你必须计算每个级别所需的xp,因此,您应该将计算代码放在一个循环中,该循环从最低级别开始,直到达到最高限制/结束级别。在PHP中,可以从两种不同的循环类型中进行选择:for循环和

我编写了一个简单的代码来计算一个数学方程,但我想迭代从
$start
$end
的数字。我正在制作一个游戏,这个页面将计算达到下一个级别所需的经验量,并将其插入数据库。从
$start
迭代到
$end
并计算该级别所需的exp量的最佳方法是什么

代码:



因为它现在在计算第一级,但我一辈子都不知道如何让它通过,直到它达到
$end

你必须计算每个级别所需的xp,因此,您应该将计算代码放在一个循环中,该循环从最低级别开始,直到达到最高限制/结束级别。在PHP中,可以从两种不同的循环类型中进行选择:for循环和while循环

就个人而言,我会为这个特定的“问题”选择while循环,但这是每个人都必须自己决定的事情。计算器的代码如下所示:

 // Create an extra variable to store the level for which you are currently calculating the needed xp 
 $i = $start;

 // The while-loop (do this code until the current level hits the max level as specified)
 while($i <= end) {
    // use $i to calculate your exp, its the current level
    // Insert code here...

    // then add 1 to $i and do the same again (repeat the code inside loop)
    $i++;
 }
//创建一个额外变量来存储当前计算所需xp的级别
$i=$start;
//while循环(执行此代码,直到当前级别达到指定的最大级别)
而我
在PHP中:

40 * $level * ($level + 1) * (2 * $level + 1) / 6 + 360 * $level * ($level + 1) / 2
或者进一步简化它,如果你喜欢的话

这肯定比计算循环快100倍


如果$start不是1,只需使用
f(end)-f(start-1)

while
loop,
foreach range
,几乎任何循环。@MarkBaker想把它作为一个答案,我会接受的。非常感谢你,我当时在放屁,完全忘记了()循环lol。可能是重复的谢谢,这种方法肯定更有效!!!此页面将只用于一次计算,然后将其插入到数据库中。解释如何解决OP的问题,这将更有利于everyone@davejal没有太多的时间,现在添加了一些解释行。希望它是我这很容易理解
$exp = 0;
for($level = $start; $level <= $end; $level++){
    $exp += 40 * $l ** 2 + 360 * $l;
}
  f(n)
= S[1 100] 40n^2 + 360n
= 40n (n + 1) (2n + 1) / 6 + 360n (n + 1) / 2
40 * $level * ($level + 1) * (2 * $level + 1) / 6 + 360 * $level * ($level + 1) / 2