Обычно это происходит, когда тип одной из ваших переменных - это то, чего вы не ожидаете.
$x = "8";
$y = 4;
$x / $y; // this is OK, PHP converts "8" to 8
$x = new FooObject();
$y = 4;
$x / $y; // PHP says "wtfmate??"
Выведите переменные $total_rating_points
и $total_ratings
:
var_dump($total_rating_points);
var_dump($total_ratings);
.. затем работайте в обратном направлении через ваш код (проверяя debug_backtrace()
, если требуется), чтобы найти, где он ошибся.
Редактировать: даааа .. Я просто снова посмотрел на твой код и увидел проблему. $total_rating_points
- это массив, и это является причиной проблемы. Как вы делите массив на число? Ответ: вы не можете.
Хотите разделить каждый элемент массива на $total_ratings
? например:
// input: [2, 4, 6, 16] / 2
// output: [1, 2, 3, 8]
function divideArrayMembers($arr, $denominator) {
$ret = array();
foreach ($arr as $key => $val) {
$ret[$key] = $val / $denominator;
}
return $ret;
}
... или вы хотите разделить итог?
input: [2, 4, 6, 16] / 2
output: 14 // (2 + 4 + 6 + 16) / 2
function divideTotal($arr, $denominator) {
return array_sum($arr) / $denominator.
}