PHP: Рассчитать среднее значение массива, если имеется более одного элемента

Я должен вычислить значение массива, взятого из запроса, только если в нем было более одного элемента, иначе я должен вернуть значение элемента, я использую этот код:

function calculate_average($arr) {
if (count($arr) === 1) {
$average = $arr;
} else {
sort($arr);
$count = count($arr); //count items in array
$sum = array_sum($arr); //sum of numbers in array
$median = $sum / $count; //divide sum by count
$average = ceil($median); //convert number in excess value
}
return $average;
}

И работать, когда есть два или более значения, но возвращать NULL, когда есть только одно значение, почему?

Спасибо всем, кто хочет принять участие.

0

Решение

Как уже было сказано, чтобы сделать это так, как вы пытаетесь, вам нужно получить доступ к первому элементу вашего массива, как

$average = $arr[0];

Тем не менее, ваш метод расчета среднего по-прежнему будет работать для массива с одним элементом. Это просто сработает до х / 1.

function calculate_average($arr) {
$count = count($arr); //count items in array
$sum = array_sum($arr); //sum of numbers in array
$median = $sum / $count; //divide sum by count
$average = ceil($median); //round number

return $average;
}
1

Другие решения

Пожалуйста, попробуйте это:

function calculate_average($arr) {
if (count($arr) === 1) {
$average = $arr[0];
} else {
sort($arr);
$count = count($arr); //count items in array
$sum = array_sum($arr); //sum of numbers in array
$median = $sum / $count; //divide sum by count
$average = ceil($median); //convert number in excess value
}
return $average;
}
0

По вопросам рекламы [email protected]