我不确定这是否是正确的标题。假设我有 3000 名会员,每个会员都是根据积分排名的。最大排名为 3000,最小排名为 1。我需要根据排名检查前 10% 的成员(前 10%、前 20%、...、前 90%)。
有一些如何获取百分位数的答案,但这些函数仅在您提供所有数字和百分位数时检查该数字是否在百分位数内。我需要相反的顺序,例如我有最大排名号、最小排名号和会员排名。所有等级编号都是连续的。现在我需要知道这个数字在哪个百分位数内。或者更准确地说,在 10% 之内。知道如何获得这个吗?
您真的需要最低排名吗,因为您的排名显然应该为 1。
您需要能够计算用户百分比,然后将其四舍五入到最接近的 10%。
它可能看起来像这样:
function calculatePercentage($rank, $total){
return ($rank/$total)*100;
}
function roundToNearestTen($value){
return ceil($value / 10) * 10;
}
function getRank($rank, $total){
return roundToNearestTen(calculatePercentage($rank, $total));
}
$rank = 99;
$total = 1000;
echo getRank($rank, $total).'%';
//Output: 10%