为了账号安全,请及时绑定邮箱和手机立即绑定

根据评论计算5星的评分

根据评论计算5星的评分

PHP
catspeake 2021-04-26 12:13:56
我的评论很好,而我的评论不好。我需要根据此评论计算评分才能发布。例子:第1则评论有1条好评论,而2条评论很差第2个帖子有12条好评论和5条差评第3则评论有0条好评论和0条差评如何计算评分?我需要邮政获得5星。我需要得分不超过5星。可能我需要这个公式吗?$score = ($good_reviews * $bad_reviews) / 5; //get rating stars但是我没有得到5个或更少的数字。我怎样才能正确地做到这一点?
查看完整描述

2 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

也许您想要这样:


 $rating = $good_reviews 

     ? intval ( 5.4 * $good_reviews / ( $good_reviews + $bad_reviews))

     : 0;

现在一步一步来:

  • SUM := $good_reviews + $bad_reviews 是所有评论的总和。

  • RATE := $good_reviews / SUM是$ good_reviews对评论总数的总体评价。结果在0.000到1.000的范围内。

  • 将其乘以5.4会将范围扩展到0.000到5.400。允许一些不满意的选票获得5星排名有点棘手。该因子可以是5.000到5.9999999之间的每个数字。

  • intval() 将数字从0减少到5(您的星星)。

  • 替代方法?:避免了零误差除法。


查看完整回答
反对 回复 2021-05-07
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

该公式无法满足您的需求。它只会乘以乘以乘以乘以5,然后除以5。例如,(((100乘以20 * 20乘以坏)/ 5)=400。从5中算出!


如果您需要得分不超过5星,则需要使用范围。


计算好坏之间的百分比,然后进行if检查。


例如:


$percentage = (($good - $bad) / $good) * 100;


if($percentage => 100) {

 //5 starts

} else if ($percentage < 100 && $percentage => 80) {

 //4 stars

} else if ($percentage < 80 && $percentage => 60) {

 //3 stars

} else if ($pecentage < 60 && $percentage => 40) {

 //2 starts

} else {

 //1 star

}

那只是一个基本的例子。有多种方法可以解决此问题。您需要根据需要进行调整,然后尝试是否适合您。


我确实很快完成了此操作,因此没有对其进行测试。请检查并确定它是否适合您。我只是想给你一个主意。


查看完整回答
反对 回复 2021-05-07
  • 2 回答
  • 0 关注
  • 391 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信