根据平均评论和总评论建立排名系统

时间:2019-09-11 10:30:40

标签: php variables ranking

我试图使标题尽可能合乎逻辑。我有一个评论系统,但我偶然发现我想进行公平的排名。我想根据平均评论分数和提交的评论数创建一个数字。

例如,我有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;

但是也许有更好的方法呢?

1 个答案:

答案 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看起来很复杂,但是我希望您自己尝试一下数学。