我试图使标题尽可能合乎逻辑。我有一个评论系统,但我偶然发现我想进行公平的排名。我想根据平均评论分数和提交的评论数创建一个数字。
例如,我有A公司和B公司。
公司A基于5条评论的平均得分为4.8。 根据43条评论,公司B的平均得分为4.7。
如果您的平均得分排名,公司A的排名高于公司B的排名,但我认为这是不公平的,因为基于43条评论很难获得4.7分。
也许这不是编码问题,但是我如何创建一个数字以某种方式计算数据并将公司B排在公司A之上,因为基于43条评论很难得到4.7,而不是基于5条评论得到4.8。
我两个值都存储在变量中:
$average_score;
$count_reviews;
我尝试过这样的事情:
$average_total = $average_score * $count_reviews/ 100;
但是也许有更好的方法呢?
答案 0 :(得分:0)
尝试执行以下数学操作:
$average_total = ($count_reviews/5)/($count_reviews/$average_score)*($count_reviews);
我知道您使用PHP
,但出于演示目的,我必须使用Javascript
。
var reviews = {
"companyA":["4.8", "5"], //[$average_score,$count_reviews]
"companyB":["4.7", "43"],
"companyC":["4.5", "70"],
"companyD":["4.8", "1"],
};
var order = [];
for (var company in reviews) {
var mathstmt = (reviews[company][1]/5)/(reviews[company][1]/reviews[company][0])*(reviews[company][1]);
order.push([company, mathstmt]);
}
order.sort(function(a, b) {
return a[1] - b[1];
}).reverse();
for(var x = 0;x<order.length;x++){
console.log(order[x][0]);
}
很抱歉,这个javascript
看起来很复杂,但是我希望您自己尝试一下数学。