在PHP中捕获高于或低于整数值的值

时间:2013-12-19 12:15:09

标签: php

我需要将变量始终更改为在一定范围内(0-5),处理轮次。例如,如果变量命中6,则应将其更改为0;如果它命中-1,它应该改为5.这是我的伪,任何想法?

function get_further_letter($index = 5, $number = 3, $direction = "encode") {
    $count = 5;
    switch ($direction) 
    {
    case "encode":
        $index = $index + $number; //pushes the value of index to 8
        break;
    }
    // Start my attempt
    while ($index > $count)
    {
        $index = $index - $count;
    }
    // End my attempt
    return $index;
}

>> get_further_letter(5, 3); // 5 + 3 = 8, 8 is 1r3, so keep r3 as 0, 1, 2
2
>> get_further_letter(5, 4); // 5 + 4 = 9, 9 is 1r4, so keep r4 as 0, 1, 2, 3
3
>> get_further_letter(5, -7); // 5 + -7 = -2, -2 is -1r-2, so keep r-2 as 0, 1, 2, 3
4

对于模糊的抱歉,我对如何使其工作感到非常困惑,所以说清楚我的要求有点困难。

我在最后一个例子中得到-2,因为在我的情况下,值将是一个数组索引。我不确定这是否真的会发生。

1 个答案:

答案 0 :(得分:3)

将值保持在[0 .. n)范围内的通用函数是:

function fn($x, $n)
{
    return ($x % $n + $n) % $n;
}

双模数是处理负数。