Как сгруппировать значения?

Есть массив где ключ возраст, а значение - количество людей такого возраста.
[31]=>int(10)
  [32]=>int(10)
  [33]=>int(10)
  [34]=>int(10)
  [35]=>int(5)
  [36]=>int(5)
  [37]=>int(5)
  [38]=>int(5)

Надо сгруппировать так что бы получилось:
Людей от 30 до 35 лет - 40 человек (сумма значений)
Людей от 35 до 40 лет - 20 человек
Вопрос опять же не в том как сделать, с помощью цикла и if'ов задача решается банально, а как сделать по красоте всё?
  • Вопрос задан
  • 93 просмотра
Решения вопроса 1
xpert13
@xpert13
Full Stack Developer
Как-то так?
function countPeopleInAge($ageFrom, $ageTo, $ages)
{
  $sum = 0;
  for($i = $ageFrom; $i <= $ageTo; $i++)
  {
    $sum += $ages[ $i ] ?? 0; // Если PHP < 7 тогда писать так: $sum += isset($ages[ $i ]) ? $ages[ $i ] : 0; 
  }

  return $sum;
}

echo countPeopleInAge(30, 35, $ages); // Людей от 30 до 35 лет - 30 человек (сумма значений)
echo countPeopleInAge(35, 40, $ages); // Людей от 35 до 40 лет - 20 человек
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы