我想根據他們有多少朋友給予我的玩家獎金。在沒有經過整個範圍的情況下找到範圍之間的值
我有斷點(例如0,1,5,10,25)
爲0個朋友,他得到0獎金。
爲1樓的朋友,他得到1000,爲5或2000等以上...
我現在做的是這樣的:
public function getFriendsBonusByFriendsAmount($amount)
{
switch (true) {
case ($amount < 1):
return 0;
case ($amount < 5):
return 1000;
case ($amount < 10):
return 2000;
case ($amount < 25):
return 3000;
case ($amount >= 25):
return 5000;
}
}
我正在尋找一種不同的方式來找到沒有foreach /開關的獎金
也許想到一個數組或陣列,我可以玩?
$bonusBreakpoints = [
0 => 0,
1 => 1000,
5 => 2000,
10 => 3000,
25 => 5000
]
或者也許兩個數組有相應的索引嗎?
我想到了一個辦法做到這一點,但它是一個浪費內存:
$bonusPerFriends = [
0 => 0,
1 => 1000,
2 => 1000,
3 => 1000,
4 => 1000,
5 => 2000,
6 => 2000,
...
25 => 5000
]
我寧可不使用這種方式。
我認爲最好的是將這個值存儲在數據庫中。當你進行SQL查詢時,你可以爲一個用戶獲得很好的價值。 (類似於'where user = 1 and friend = 5') – Xenofexs
如果你正在製作'a> x> b',即總是在一個範圍內檢查值,那麼你必須在每個範圍之間刻錄...因爲你可以在一次超過一個範圍 – Bonatti
@Bonatti在這種情況下,你不能在同一個範圍內兩次。 0,1-4,5-14,15-24,25 + –