好吧,我一直在努力解决这个问题,谷歌搜索试图找到任何可以引导我朝着正确方向前进的东西,但无济于事。
所以我有一个排名排行榜数组,如下所示:
[1] = array('points' => '99', 'rank' => '1');
[2] = array('points' => '90', 'rank' => '2');
[3] = array('points' => '90', 'rank' => '2');
[4] = array('points' => '80', 'rank' => '4');
[5] = array('points' => '70', 'rank' => '5');
[6] = array('points' => '70', 'rank' => '5');
然后我有一个带有预定义数组的奖励积分系统,可以根据排名奖励积分:
[1]=10;
[2]=9;
[3]=8;
[4]=7;
[5]=6;
[6]=5;
如果不是因为平局,我只会匹配两个数组并根据数组键奖励积分。但是,由于我允许绑定,因此我试图在所有绑定用户之间分配绑定奖励积分。因此,根据上述提到的玩家 2 和 3 并列第 2 名,他们将平分奖励点 9 和 8……所以两人都将获得 8.5 分。
所以我在合并两个数组时要寻找的最终结果是:
[1] = array('points' => '99', 'rank' => '1', 'reward' => '10');
[2] = array('points' => '90', 'rank' => '2', 'reward' => '8.5');
[3] = array('points' => '90', 'rank' => '2', 'reward' => '8.5');
[4] = array('points' => '80', 'rank' => '4', 'reward' => '7');
[5] = array('points' => '70', 'rank' => '5', 'reward' => '5.5');
[6] = array('points' => '70', 'rank' => '5', 'reward' => '5.5');
排行榜可以不断变化,直到一天结束,所以我尽量不要让它太复杂。我只是想知道是否有人可以向我指出他们看到的可以帮助我的东西,或者他们是否有任何实施想法。
我在尝试中最挣扎的部分是循环遍历排行榜数组并不断期待“排名”相同,然后知道我需要总结和拆分什么,同时也知道我可以跳过数组,而不是对我刚刚在前瞻中经历的下一个项目执行相同的测试。对不起,如果我感到困惑,但我显然很困惑。