배열의 평균(또는 산술 평균)은 프로그래밍에서 가장 기본이 되는 수학 연산 중 하나입니다. 데이터 분석, 금융, 통계 리포트 등 다양한 분야에서 활용되며, 실제 웹 개발에서도 상품의 평점 평균을 계산하거나 시험 점수의 평균을 구하는 기능 등에 널리 사용됩니다. 이 글에서는 PHP로 숫자 배열의 평균값을 계산하는 세 가지 대표적인 방법을 예제 코드와 함께 자세히 살펴보겠습니다.
평균(Average)이란?
평균은 배열 내 모든 요소의 합을 구한 뒤, 그 합을 요소의 총 개수로 나누어 계산합니다.
공식: 평균 = (모든 요소의 합) ÷ (요소의 총 개수)
예시:
- 배열: [2, 4, 6, 8]
- 합계: 2 + 4 + 6 + 8 = 20
- 개수: 4개
- 평균: 20 ÷ 4 = 5
1. 내장 함수 사용하기
PHP에는 평균을 손쉽게 계산할 수 있는 내장 함수가 마련되어 있습니다. array_sum() 함수는 배열 요소들의 합계를 구하고, count() 함수는 배열의 요소 개수를 반환합니다. 이 두 함수를 조합하면 단 몇 줄의 코드로 평균을 구할 수 있습니다.
<?php // 배열 정의 $numbers = [1, 2, 3, 4, 5]; // 배열의 모든 요소 합계 계산 $sum = array_sum($numbers); // 배열 요소의 총 개수 확인 $count = count($numbers); // 평균 계산 $average = $sum / $count; // 결과 출력 echo "배열의 평균은: $average"; ?>
배열의 평균은: 3
2. 반복문(Loop) 사용하기
반복문을 활용하는 방법은 배열을 직접 순회하면서 각 요소를 더해 합계를 구한 후 평균을 계산합니다. 코드가 다소 길어지지만, 계산 과정을 직접 제어할 수 있어 프로그래밍 기초를 학습하거나 추가 로직을 삽입해야 할 때 유용합니다.
<?php
// 배열 정의
$numbers = [1, 2, 3, 4, 5];
// 합계를 저장할 변수 초기화
$sum = 0;
// 배열 요소의 총 개수
$count = count($numbers);
// 반복문으로 각 요소를 순회하며 합계 계산
foreach ($numbers as $num) {
$sum += $num; // 각 요소를 합계에 더함
}
// 평균 계산
$average = $sum / $count;
// 결과 출력
echo "배열의 평균은: $average";
?>
배열의 평균은: 3
3. array_reduce() 함수 사용하기
array_reduce() 함수는 배열을 하나의 값으로 축약하는 함수형 프로그래밍 방식입니다. 콜백 함수를 통해 요소들의 합계를 누적한 뒤, 요소 개수로 나누어 평균을 구합니다. 코드가 간결하여 함수형 스타일을 선호하는 개발자에게 적합합니다.
<?php
// 배열 정의
$numbers = [2, 4, 6, 8, 10];
// array_reduce()로 합계 계산
$sum = array_reduce($numbers, function($carry, $item) {
return $carry + $item;
}, 0);
// 합계를 요소 개수로 나누어 평균 계산
$average = $sum / count($numbers);
// 결과 출력
echo "배열의 평균은: $average";
?>
배열의 평균은: 6
방법별 비교
| 방법 | 시간 복잡도 | 공간 복잡도 | 적합한 용도 |
|---|---|---|---|
| 내장 함수 | O(n) | O(1) | 간결하고 가독성 좋은 코드 |
| 반복문 | O(n) | O(1) | 기본 원리 학습 및 세부 제어 |
| array_reduce() | O(n) | O(1) | 함수형 프로그래밍 스타일 |
세 가지 방법 모두 시간 복잡도가 O(n)으로 동일하지만, 코드의 가독성과 유지보수 측면에서 차이가 있습니다.
실무 활용 사례
- 통계 분석: 데이터셋의 평균값 산출
- 성적 관리 시스템: 학생들의 평균 성적 계산
- 금융 애플리케이션: 월평균 지출액 분석
- 스포츠 데이터 분석: 선수의 평균 경기력 지표 산출
마무리
PHP에서 배열의 평균을 계산할 때는 array_sum()과 count()를 조합한 내장 함수 방식이 가장 효율적이고 가독성이 뛰어나므로 일반적으로 권장됩니다. 반면 계산 과정에 대한 세밀한 제어가 필요하거나 중간에 추가 로직을 넣어야 한다면 반복문 방식이, 함수형 코딩 스타일을 선호한다면 array_reduce() 방식이 좋은 선택이 될 수 있습니다. 프로젝트의 요구사항과 팀의 코드 컨벤션에 맞는 방법을 선택하세요.