如果在数组中,则使用PHP,并将值+1增加到一个极限


Using PHP if within an array and increasing value+1 to a limit

我正在使用多个IF语句,想知道如何将这些语句放入数组中。

IF语句

if ($totalEXP < $l1) echo "1";
if ($totalEXP < $l2) echo "2";

正如你所看到的,除了$l1和最后的回声之外,其他都是一样的我会使用大约100个IF语句,有没有办法把它放在一个数组中以节省大量的代码?

我知道我应该使用ELSEIF语句

<?php
if ($totalEXP < $l1) {
    echo "1";
} elseif ($totalEXP < $l2) {
    echo "2";
} else {
    echo "MAX";
}
?>

但出于简单的原因,我决定了我所走的路线。

遗憾的是,我并没有尝试太多,因为我不知道这是否可能。

当然可以。

您将您的等级数据放入阵列中

$levels = array(
    1 => $l1,
    2 => $l2,
    ...
);

然后循环

$pleyer_level = 1;
foreach($levels as $level => $xp)
    if($totalEXP > $xp)
        $player_level = $level;

当你知道循环的工作已经完成时,在循环中插入一个中断也是明智的,这样你就不会无意义地迭代

$pleyer_level = 1;
foreach($levels as $level => $xp)
    if($totalEXP > $xp)
        $player_level = $level;
    else
        break;

不确定这是最好的方法,但您可以在for循环中运行if语句。

for ($i = 1; $i <= 100; $i++) // i increases every new loop
{
    if ($totalEXP < ${l$i}) // ${l$i} corresponds to $l1, $l2, $l3 and so on
    {
        // do stuff
    }
}