2011-02-10 217 views
0

我正在进行星级评定(5星是最好的,1是坏的),我有4个用户投票的4个记录。PHP:计算平均值3

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

我该如何计算出在PHP中的平均值?

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

我想:

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

,并得到了 “13”,这是不对的数量

+1

没有冒犯,如果你*不知道基本的运算符优先级,你应该立即停止编码。 – 2011-02-10 10:23:59

+0

基础高中数学应该告诉你,师将优先于加法,所以你应该使用括号。 – Spudley 2011-02-10 10:24:08

+4

这个网站是针对初学者的问题,以及我们这些具有更高级知识的人。这是一个有效的问题,在我们学习的过程中,我们都遇到过这个问题... – 2011-02-10 10:32:44

回答

8

在数学师先除此之外,所以你应该重写等式(3 + 4 + 5 + 3 )/ 4

2

部门优先于添加。而不是你做什么,在分裂之前使用

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

你必须将你的信息添加。

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

4

您正在进入运算符优先级。该部门将加入前计算,所以你得到这个(为了清楚起见,加括号):

3 + 4 + 5 + (3/4) 

...,然后取整到13

试试这个:

$count = ($user1 + $user2 + $user3 + $user4)/4 
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 
?> 

试试这个它的工作完美..

1

您有2个选项如何存储的选票。
a)分别因为你现在做的(用户1:5;用户2:3;用户3:4; ...)
b)或可以聚集票

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

假设存储值如下
平均评分 = 3。3
票数 = 5

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

但是,以这种方式存储投票也有一个缺点 - 您无法了解个人用户如何投票。如果需求说明您需要了解个人用户如何投票,请将方法a)和b)结合起来,并且您很好。