PHP:计算平均值3

时间:2011-02-10 10:20:08

标签: php

我正在制作一个星级评分(5星是最好的,1是坏的),我有4个用户投票的4条记录。

user1: 3
user2: 4
user3: 5
user4: 3

我怎样才能计算出php的平均值?

只是简单的数学,$ count = $ user1 + $ user2 + $ user3 + $ user4 / 4?

我试过了:

echo round(3+4+5+3/4);

并得到数字“13”,这是不正确的

6 个答案:

答案 0 :(得分:8)

在数学除法之前加上,所以你应该把你的等式重写为(3 + 4 + 5 + 3)/ 4

答案 1 :(得分:4)

您正在遇到运营商优先级。除法之前会计算除法,所以你得到了这个(为了清晰起见,增加了括号):

3 + 4 + 5 + (3 / 4)

...然后四舍五入为13.

请改为尝试:

$count = ($user1 + $user2 + $user3 + $user4 ) / 4 

答案 2 :(得分:2)

分部优先于增加。而不是你做什么,使用

echo round((3+4+5+3)/4); 

答案 3 :(得分:1)

您有2种选择如何存储选票 a)与你现在分开(user1:5; user2:3; user3:4; ...)
b)或者你可以汇总投票

你最有可能实施了选项a),但是让我告诉你b)的选项是什么 当您汇总投票时,对于每个帖子/文章/新闻,您只存储2个值 - 投票数平均评分
这有助于您在每次渲染页面时更快,更轻松地检索平均评分 但是,当用户投票时,您需要做一些数学计算来更新平均评分

假设存储的值如下
平均评分 = 3.3
投票数 = 5

如果用户投票3,您需要同时更新平均评分投票数
新票数 = [old number of votes] + 1(5 + 1 = 6
新的平均评分 =
([old average rating] * [old number of votes] + [current vote]) / [new number of votes] ((3.3 * 5 + 3)/ 6 = 3.25

然而,以这种方式存储投票也有一个缺点 - 你无法看到个人用户如何投票。如果要求说明您需要查看个人用户的投票方式,请结合方法a)和b),您就可以了。

答案 4 :(得分:0)

您必须在分组前对您的添加进行分组。

回波((3 + 4 + 5 + 3)/ 4);

答案 5 :(得分:0)

<?php

echo round((3+4+5+3)/4); 


or
$user1=3;
$user2=4;
$user3=5;
$user4=3

echo $count = ($user1 + $user2 + $user3 + $user4 ) / 4 

op-->4
?>

试试这个完美的工作..