我想知道一家餐厅的平均星级。顾客会给这家餐厅打分。我制作了一个用于存储客户评分的数据透视表。
The average rating =5
--------
place_ratings
---------------
user_id place_id rating
1 1 4
2 1 3
5 1 5公式是什么,或者我如何在php laravel中计算它?
这是我的代码:
public function placeRating($id)
{
$rates = PlaceRating::where('place_id',$id)->select('rating')->get()->toArray();
$rateArray =[];
foreach ($rates as $rate)
{
$rateArray[]= $rate['rating'];
}
$sum = array_sum($rateArray);
$result = $sum/5;
return response()->json(['rating'=>$result],200);
}发布于 2019-12-29 14:18:49
这就是我想出来的。我将它作为一个集合来使用集合方法:
public function placeRating($id)
{
$ratings = PlaceRating::where('place_id',$id)->get();
$ratingValues = [];
foreach ($ratings as $aRating) {
$ratingValues[] = $aRating->rating;
}
$ratingAverage = collect($ratingValues)->sum() / $ratings->count();
return $ratingAverage;
}https://stackoverflow.com/questions/59517230
复制相似问题