@Kurper

Как посчитать среднее арифметическое?

Всем привет.

К примеру есть массив:
$arr = [0 => 12, 1 => 15, 2 => 15, 3 => 75, 4 => 77, 5 => 40, 6 => 15, 7 => 2, 8 => 40, 9 => 11, 10 => 8]


надо посчитать арифметическое число за 3 дня, к примеру сложить первые три индекса, то есть 0+1+2/3, 1+2+3/3....

пробовал делать через цикл, но в итоге выдает ошибку Undefined offset: 11.

$arr = [0 => 12, 1 => 15, 2 => 15, 3 => 75, 4 => 77, 5 => 40, 6 => 15, 7 => 2, 8 => 40, 9 => 11, 10 => 8]
for ($i = 0; $i < count($arr); ++$i) {
  $temp = 0;
  for ($j = 0; $j < 3; ++$j) {
    $temp += $arr[$i + $j];
  }
  $temp/=$3;
  $temp = str_replace(",", ".", $temp);
  $data[] = (int) $temp;
}
  • Вопрос задан
  • 89 просмотров
Решения вопроса 2
@IS-Builder
Kurper
к примеру сложить первые три индекса

Выбираете срез массива, и над ним выполняете арифметические операции:
$arr = [0 => 12, 1 => 15, 2 => 15, 3 => 75, 4 => 77, 5 => 40, 6 => 15, 7 => 2, 8 => 40, 9 => 11, 10 => 8];

$slice = array_slice($arr, 0, 3);
$result = array_sum($slice) / sizeof($slice);

echo $result;
Ответ написан
aleksejjjj
@aleksejjjj
// Количество дней
$days = 3;

// Исходный массив
$array = [0 => 12, 1 => 15, 2 => 15, 3 => 75, 4 => 77, 5 => 40, 6 => 15, 7 => 2, 8 => 40, 9 => 11, 10 => 8];

// array_slice($array, 0, $days) - первые $days элементов массива
// array_sum() - сумма этих элементов
echo array_sum(array_slice($array, 0, $days))/$days;

UPD: Возможно ответ Эдуард более корректный, мой не учитывает количество дней большее чем размер массива. Зависит от того учитываются ли в вашем среднем дни которых нет в массиве. В моём варианте они по сути за 0 считаются.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
NooBiToo
@NooBiToo
$average = array_sum($arr)/count($arr);
echo $average;
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
15 сент. 2019, в 12:45
50000 руб./за проект
15 сент. 2019, в 10:50
45000 руб./за проект
15 сент. 2019, в 10:47
4000 руб./за проект