php - PHP - 如果 int 达到 n
问题描述
采取这些级别:
level1 = 0days
level2 = 30days
level3 = 90days
所有这些级别都是完全动态的。管理员可以随时更改关卡数量和关卡持续时间。
我正在录制numberOfDailyLogin
一个系列,所以如果用户即使 1 天没有登录,仪表也会重置为 0。
我正在尝试根据以下内容为用户提供特殊级别标签numberOfDailyLogin
我已经有了一个解决方案,方法是运行while loop
from 0
tonumberOfDailyLogin
并更新variable
一次>=
daysRequired
以进行登录。
但我不想要这样,想要一些简单的东西
在这一点上我完全一无所知,我无法对任何值进行硬编码,所以如果你有兴趣请给一些建议。
#编辑1
// json response for levels
{
"status": 200,
"body": [
{
"name": "level1",
"after_days": 0,
},
{
"name": "level2",
"after_days": 50,
},
{
"name": "level3",
"after_days": 180,
}
]
}
function getLevel($allLevels, $numberOfDailyLogins) {
foreach ($allLevels as $l) {
if ($numberOfDailyLogins > $l['after_days']) {
return $l['name'];
}
}
}
问题是如果numberOfDailyLogins=51
.. 所以它应该显示 level2... 因为 50 天后 userLevel 达到 level2.. 但我的代码返回 level1 这是完全错误的。
解决方案
@brombeer 建议对我有用,谢谢伙计
function getLevel($allLevels, $numberOfDailyLogins) {
$level = null;
foreach ($allLevels as $l) {
if ($numberOfDailyLogins> $l['after_days']) {
$level = $l;
}
}
// TO-DO... do whatever you want
}
推荐阅读
- android - 使用 Cupertino 分段控制在第一页正文中打开第二页
- java - 重构:删除构造函数中的重复项
- mongodb - Mongodb bulkwrite updateOne 基于数组最后一个元素中的日期
- javascript - 使用 rxjs 的搜索功能问题
- sql - SQL中Date_Trunc的格式(Redshift)
- sed - 使用 sed 从命令输出中提取模式返回整个命令而不是仅匹配的子字符串
- java - bootstrap.properties 的替换和注入不起作用
- javascript - 使用对象迭代映射
- python - 如何将整个列表存储在一列的单行中?
- ruby - 水平滚动表格