Php 星级制度计算

Php 星级制度计算,php,Php,我正在为我的电子商务创建一个简单的评级系统。我有一个评论页面,用户可以从1-5对产品进行评分。我已经可以节省费用了,但我不知道如何计算。这是我的样本数据 Array ( [rate_1] => 0 // total user voted for rate 'boo' [rate_2] => 1 // total user voted for rate 'more improvement' [rate_3] => 0 // total user voted

我正在为我的电子商务创建一个简单的评级系统。我有一个评论页面,用户可以从1-5对产品进行评分。我已经可以节省费用了,但我不知道如何计算。这是我的样本数据

Array
(
    [rate_1] => 0 // total user voted for rate 'boo'
    [rate_2] => 1 // total user voted for rate 'more improvement'
    [rate_3] => 0 // total user voted for rate 'its ok'
    [rate_4] => 2 // total user voted for rate 'i recommend this'
    [rate_5] => 4 // total user voted for rate 'i highly recommend this'
)
下面是一个简单的图表:

rate_1 = Boo
rate_2 = More Improvement
rate_3 = It's OK
rate_4 = I recommend this
rate_5 = I highly recommend this
我想得到的是每种利率的百分比。选择“Boo”等的百分比是多少

最后得到所有这些的汇总百分比


获取每个比率的百分比的原因是我想创建一个类似于Google Playstore的进度比率。

在数据库中,您可以保存总评分和用户投票的数量。
而不仅仅是计算评级:

$perProduct = product.totalRating / product.totalVotes
$totalRatingOfProduct = product.totalRating / SUM(product.totalVotes)

在数据库中,您可以保存总评分和用户投票数。
而不仅仅是计算评级:

$perProduct = product.totalRating / product.totalVotes
$totalRatingOfProduct = product.totalRating / SUM(product.totalVotes)

N
为单个产品的总评级数

对于此处的示例数据:

Array
(
    [rate_1] => 0 // total user voted for rate 'boo'
    [rate_2] => 1 // total user voted for rate 'more improvement'
    [rate_3] => 0 // total user voted for rate 'its ok'
    [rate_4] => 2 // total user voted for rate 'i recommend this'
    [rate_5] => 4 // total user voted for rate 'i highly recommend this'
)
N
将是
0+1+0+2+4==7

费率_1(Boo)的百分比为
(votesOfRate1/N)*100

因此投票给Boo的用户数量将是
(0/7)*100
,即0%

比率_2(更多改善)的百分比为
(VotesofRate 2/N)*100

因此,投票支持更多改进的用户数量将是
(1/7)*100,即14.29%

等等

如果要计算单个产品的平均评级,请执行加权和平均:


AverageRating=((1*votesOfRate1)+(2*votesOfRate2)+(3*votesOfRate3)+(4*votesOfRate4)+(5*votesOfRate5))/N
N
为单个产品的评级总数

对于此处的示例数据:

Array
(
    [rate_1] => 0 // total user voted for rate 'boo'
    [rate_2] => 1 // total user voted for rate 'more improvement'
    [rate_3] => 0 // total user voted for rate 'its ok'
    [rate_4] => 2 // total user voted for rate 'i recommend this'
    [rate_5] => 4 // total user voted for rate 'i highly recommend this'
)
N
将是
0+1+0+2+4==7

费率_1(Boo)的百分比为
(votesOfRate1/N)*100

因此投票给Boo的用户数量将是
(0/7)*100
,即0%

比率_2(更多改善)的百分比为
(VotesofRate 2/N)*100

因此,投票支持更多改进的用户数量将是
(1/7)*100,即14.29%

等等

如果要计算单个产品的平均评级,请执行加权和平均:


AverageRating=((1*votesOfRate1)+(2*votesOfRate2)+(3*votesOfRate3)+(4*votesOfRate4)+(5*votesOfRate5))/N
如果您想通过数组执行此操作,可以尝试使用
数组\u sum

($your_array_name['rate_1']/array_sum($your_array_name))*100;
价值解释

$your_array_name['rate_1']
=rate_1的投票种姓数


array\u sum($your\u array\u name)
=这将产生总投票数。如果你已经有了投票总数。只需将
array\u sum($your\u array\u name)
替换为总票数

您可以尝试使用
array\u sum
,如果您想通过array执行此操作

($your_array_name['rate_1']/array_sum($your_array_name))*100;
价值解释

$your_array_name['rate_1']
=rate_1的投票种姓数



array\u sum($your\u array\u name)
=这将产生总投票数。如果你已经有了投票总数。只需将
array\u sum($your\u array\u name)
替换为总投票数

是的,在我的数据库中,我可以保存以特定比率投票的用户数。但我还需要得到他们的Percantive every rate和所有rate的总汇总百分比。这是从我的php通过我的数据库生成的结果,在我的数据库中,我可以保存在特定比率中投票的用户数量。但我还需要得到他们的Percantive every rate和所有rate的总汇总百分比。这是从我的php通过我的数据库生成的结果,我将尝试。这对我有很大帮助是,
N
是单个产品的总投票数,与评级无关。
votesOfRate1
应该是Boo选项的投票数,而不是总投票数。你的意思是如果我的投票率为1比5,那么Boo值为1,那么强烈推荐值为5?@Jerielle,检查我编辑的答案。希望你能通过例子更好地理解。干杯。谢谢。我会努力的。这对我有很大帮助是,
N
是单个产品的总投票数,与评级无关。
votesOfRate1
应该是Boo选项的投票数,而不是总投票数。你的意思是如果我的投票率为1比5,那么Boo值为1,那么强烈推荐值为5?@Jerielle,检查我编辑的答案。希望你能通过例子更好地理解。干杯。在我的rate_5中,我总共有4个,这意味着
(4/数组_sum(rate_5))*100
?此过程用于获取个人费率百分比或总体?在我的rate_5中,我总共有4个,这意味着
(4/数组_sum(rate_5))*100
?此过程用于获取个人费率百分比或总体?