如果在数组中使用PHP并将值+ 1增加到限制

时间:2014-09-21 10:35:52

标签: php arrays

我正在使用多个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";
}
?>

但为了简单起见,我决定了我的路线。

可悲的是,我没有尝试过这项工作,因为我不知道它是否可能。

2 个答案:

答案 0 :(得分:2)

是的,当然。

您将您的关卡数据放入数组

$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;

答案 1 :(得分:1)

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

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
    }
}