■ 2차원 배열
1차원 배열로는 효율적인 프로그램일 구현하는데 한계가 있기 때문에 2차원 배열을 사용한다. 예를 들어 다음과 같이 학생 세명이 받은 다섯과목 점수의 합계와 평균을 구해보자.
$score[ ][ ]에서 첫 번째 인덱스는 0 ~ 2의 값을 가지며 학생을 의미하고, 두번째 인덱스는 0 ~4의 값을 가지며 각 과목을 의미한다.
2차원 배열을 이용한 세 학생의 다섯 과목 점수 합계와 평균 계산
세 학생이 받은 다섯 과목 점수의 합계와 평균을 구하는 프로그램을 2차원 배열을 이용해 작성하면 아래와 같다. array( )함수로 학생의 점수를 배열에 입력 한 후, 이중 for문을 이용하여 배열에 저장된 값을 출력하고 합계와 평균을 계산해 보자.
array_2d_avg.php |
<? // 2차원 배열을 이용하여 세 학생이 받은 다섯 과목 점수의 합계와 평균 계산 $score = array( array(88, 98, 96, 77, 63) , array(86, 77, 66, 86, 93) , array(74, 83, 95, 86, 97) ); // 입력된 점수와 배열의 인뎃스 출력 for($i = 0; $i < 3; $i++) { for($j = 0; $j < 5; $j++) { echo "\$score[$i][$j] = ".$score[$i][$j]."<br/>"; echo "<br/>"; } } // 각 학생의 합계와 평균 for($i = 0; $i < 3; $i++) { $sum = 0; for($j = 0; $j < 5; $j++) { $sum = $sum + $score[$i][$j]; } $avg = $sum / 5; $student_num = $i + 1; echo "$student_num 번째 학생의 점수 => 합계 : $sum, 평균 : $avg<br/>"; } ?> |
출력결과 |
① 점수 입력
3행 array( )함수를 이중으로 사용해 세 학생의 점수를 입력한다.
② 입력된 점수 출력
10 ~ 20행 배열 변수와 변수 입력된 점수를 출력한다. 세 명의 점수를 세 그룹으로 구분해 출력한 결과는 1 ~ 17행과 같다.
③ 합계와 평균 계산
23 ~ 36행 15행의 for문은 $i가 0 ~ 2로 1씩 증가하므노 16 ~ 25행을 세 번 반복한다. 한번 실행될 때마다 학생 한 명이 받은 점수의 합계와 평균을 구하는데, 그동안 $i가 0에 고정됨에 유의한다.
25행 합계를 나타내는 변수 $sum을 0으로 초기화 한다.
27 ~ 30행 $j가 0에서 4로 바뀌면서 첫 번째 학생이 받은 점수의 합이 $sum에 누적된다.
32행 합계를 전체 과목의 개수 5로 나눈 평균을 $avg에 입력한다.
33행 24행의 출력 형식에 쓰이는 학생 순선 $student_num을 입력한다.
④ 합계와 평균 출력
34행 echo문으로 합계와 평균을 출력한다.
'PHP > PHP Programming' 카테고리의 다른 글
[PHP] PHP + MySQL 연결확인 (0) | 2014.12.17 |
---|---|
[PHP] 함수의 이해 (0) | 2014.12.12 |
[PHP] 버블 정렬을 이용한 배열 원소 정렬 (0) | 2014.12.11 |
[PHP] 1차원 배열 (0) | 2014.12.10 |
[PHP] 논리 연산자 (0) | 2014.12.09 |