- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 php 中根据用户表现将我的用户分配到“联盟”所需的逻辑很着迷。基本上,我每个月都会运行一次 cron 作业,它将获取我的用户列表及其平均数据
SELECT user_id, AVG(activity_value) AS `average`
FROM usermeta
WHERE activity_date >= DATE_ADD(CURDATE(), INTERVAL -7 DAY)
GROUP BY user_id
ORDER BY average DESC
这会返回我的用户列表和他们的平均值,这将决定他们在联盟中的位置(最佳用户在顶部)。
我有一个联赛表,它只存储联赛 ID 及其名称
league_id league_name
1 Gold
2 Silver
3 Bronze
然后我有一个关系表将用户表和排名表联系在一起,一旦我确定了逻辑,它(应该)看起来像这样
user_id league_id
2 1
3 1
1 2
6 2
5 3
4 3
等...
我被挂断的地方是将用户插入正确联赛所需的逻辑。也有可能有更多的联赛。例如,如果有 36 个用户和 4 个联赛,则每个联赛应该有 9 个用户。
到目前为止,我的 cron 工作是在执行时运行它(只是为了让您了解我的进度)
protected function execute() {
$leagues = $this->app['leagues'];
$userAvgs = $leagues->getAllUserAvgs(); // holds results from query shown above
foreach($userAvgs as $user) {
$league = new League(array(
'user_id' => $user['user_id'],
'league_id' => THE_CORRECT_LEAGUE_HERE
));
$leagues->save($league);
}
}
在 foreach 的每个循环中,它应该将用户及其适当的联赛存储到关系表中,但我只是不知道如何运行它并确定我需要为用户 league_id 插入的正确联赛。我想我需要每个联赛都有正确的用户数,这可能与
$usersPerLeague = count($userAvgs)/count($leagues->getAllLeagues());
// getAllLeagues method returns a list of my leagues obviously
如果有人能在这个过程中指导我正确的方向,我将不胜感激。
最佳答案
这是另一种解决方案
$all_leagues= $leagues->getAllLeagues();
$all_users = $users->getAllUserAvgs();
$num_leagues = count($all_leagues);
$num_users = count($all_users);
$usersPerLeague = $num_users / $num_leagues;
$a=0;
$b=0;
foreach($all_users as $user) {
$a++;
if($a % $usersPerLeague == 0){
$b++;
}
$league = new League(array(
'user_id' => $user['user_id'],
'league_id' => $all_leagues[$b]
));
$leagues->save($league);
}
在sql顺序中可以加上user_id顺序
ORDER BY average,user_id DESC
关于php - 根据性能将用户分配到适当的联赛,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20806268/
这段代码在 Java 中的等价物是什么?我放了一部分,我对 I/O 部分感兴趣: int fd = open(FILE_NAME, O_WRONLY); int ret = 0; if (fd =
我正在尝试将维度为 d1,d2,d3 的张量 M[a1,a2,a3] reshape 为维度为 d2, d1*d3 的矩阵 M[a2,a1*a3]。我试过 M.reshape(d2,d1*d3) 但是
我是一名优秀的程序员,十分优秀!