У меня есть массив рейтингов, в котором есть список оценок конкретного продукта, из которого я хочу, чтобы результат был средним рейтингом.
Чего я хочу добиться, если средний рейтинг равен 4.2 or 4.3
или что-то между 4 to 4.5
должно получиться 4,5, а если средний рейтинг будет равен 4,6 или 4,7, или что-то должно получиться как 5 баллов.
Я сделал что-то, что приводит к 4,5 еще, если средний рейтинг равен 4,2или 4.6.
$product_ratings = Array
(
[0] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 5
[user_id] => 154
)
[1] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 5
[user_id] => 154
)
[2] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 3.5
[user_id] => 154
)
[3] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 5
[user_id] => 154
)
[4] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 2.5
[user_id] => 154
)
[5] => stdClass Object
(
[id] => 93
[product_id] => 5
[rating] => 4.5
[user_id] => 154
)
)
$r = 0;
$rating_total="";
foreach ($product_ratings as $row) {
$rating_total += $row->rating;
$r++;
}
$average_rating = "";
if($rating_total != "" || $rating_total != 0)
{
$average_rating = $rating_total / $r;
}
else
{
$average_rating = 0;
}
$avg_rating = $average_rating - fmod($average_rating, 0.5);
echo $avg_rating