2013-12-19 31 views
2

我需要有一個變量總是在一定範圍內(0-5)變化,在循環中工作。例如,如果變量命中6,則應該更改爲0;如果它打-1,它應該改爲5.這是我的僞,任何想法?在PHP中捕捉高於或低於整數值的值

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

其不清楚你想要做什麼 – Aris

+1

如果數字不在範圍內,你想要做什麼? – Syjin

+1

你到底想做什麼? –

回答

3

通用的功能,將保持[0 .. n)範圍內的值是這樣的:

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

雙模是處理負數。

+1

哇。這樣的答案。巨大的成功。 – PeeHaa

+0

@PeeHaa Teeheehee〜 –

+0

此代碼完美工作。 @PeeHaa,我嘗試了你的解決方案,但是我碰到了一個與預期不同的變量。但傑克的解決方案是一個堅實的一行。非常感謝所有幫助過我的人! :) – Jamus