■ 1차원 배열
다섯 과목(국어, 영어, 수학, 사회, 과학) 점수의 합계와 평균을 구하는 프로그램을 생가해 보자. 만약 배열을 사용하지 않으면, 왼쪽과 같이 각 과목들에 해당하는 변수를 정의하고 점수를 입력해야 한다. 반면에 오른쪽과 같이 배열을 사용해 프로그램을 작성하면, 여러개의 변수를 사용하는 대신 하나의 배열 변수 $score를 사용해 쉽고 효율적으로 프로그래밍할 수 있다.
위와 같이 배열 변수 $score는 다섯 개의 원소를 가지며 각각의 위치는 $score[0], $score[1], $score[2], $score[3], $score[4]가 된다. [ ]안에 있는 숫자를 배열의 인덱스라고 부르는데, 인덱스의 값이 0부터 시작된다는 점에 유의한다. 이처럼 배열을 이용하면 한꺼번에 여러 개의 변수를 사용해야 하는 번거로움을 피할 수 있다.
01. 1차원 배열을 이용한 다섯 과목 합계와 평균 계산
array_avg.php |
출력화면 |
① 다섯 과목의 점수 입력
5 ~ 9행 과목의 점수를 배열 변수 $score에 저장한다. $score가 가진 원소 $score[0] ~ $score[4] 다섯 과목의 점수를 각각 입력한다.
② 변수 초기화
11행 누적 합을 나타내는 변수 $sum을 0으로 초기화 한다.
③ 합계 계산
12행 ~ 15행 $a가 0 ~4로 변하면서 for문이 다섯 번 반복되고, 변수 $sum에 다섯 과목의 점수가 차례로 더해지면서 합을 구할 수 있다.
이 과정에서 변수 $sum값의 변화를 정리해 보면 아래와 같다.
for문 반복에 따른 $a 와 $sum 값의 변화 |
||
반복횟수 |
$a값 |
$sum값 |
1회 |
0 |
0 + $score[0] |
2회 |
1 |
0 + $score[0] + $score[1] |
3회 |
2 |
0 + $score[0] + $score[1] + $score[2] |
4회 |
3 |
0 + $score[0] + $score[1] + $score[2] + $score[3] |
5회 |
4 |
0 + $score[0] + $score[1] + $score[2] + $score[3] + $score[4] |
④ 평균 계산
17행 $sum을 5로 나눈 결과를 $avg에 저장해 평균을 구한다.
⑤ 결과 출력
19, 20행 다섯 과목의 점수와 합계, 평균을 출력한다.
02. array( ) 함수를 이용한 배열 원소값 입력
배열에 원소값을 직접 입력할 수 도 있지만, PHP 시스템의 array( ) 함수를 이용하면 좀 더 간편하게 입력할 수 있다.
array_func.php |
출력화면 |
① array( ) 함수를 이용한 점수 입력
5행 array() 함수로 점수를 한 번에 입력한다. 20명의 점수를 각각 배열 원소 $eng_score[0], $eng_score[1] … $eng_score[19]에 저장한다.
② 변수 초기화
7행 누적합을 나타내는 변수 $sum을 0으로 초기화 하낟.
③ 합계와 평균
9 ~ 12행 for문으로 학생들의 영어 점수를 $sum에 snwjrgkske. rm rufrhk 20명의 영어 점수 합이 $sum에 입력된다.
14행 평균을 계산해 $sum에 입력하낟.
④ 영어 점수와 합계, 평균 출력
16 ~ 18행 : 5행에서 입력한 학생들의 점수를 출력한다.
22행 : 합계 $sum과 평균 $avg를 출력한다.
03. 반복문을 이용한 배열 원소값 입력
for문으로 배열에 값을 입력해 보자. 반복 변수와 배열의 인덱스에 주목해서 살펴보자.
array_ab.php |
출력화면 |
① 배열 $a와, $b에 값 입력
2, 3행 $i가 0에서 9로 1씩 증가하면서 배열 변수 $a의 각 원소에 1에서 10까지 입력된다.
5, 6행 $i가 9에서 0으로 1씩 감소하면서 배열 변수 $b의 각 원소에 10에서 1까지 입력된다.
② 곱셈 결과 입력
8, 9행 $i가 0에서 9로 1씩 증가하면서 이에 대응하는 $a와 $b 원소의 곱이 차례로 배열 $c의 각 원소에 저장된다.
③ 배열 $a, $b, $c 출력
11, 12행 배열 $a, $b, $c의 각 원소에 입력된 값을 출력한다.
'PHP > PHP Programming' 카테고리의 다른 글
[PHP] 2차원 배열 (0) | 2014.12.11 |
---|---|
[PHP] 버블 정렬을 이용한 배열 원소 정렬 (0) | 2014.12.11 |
[PHP] 논리 연산자 (0) | 2014.12.09 |
[PHP] 비교 연산자 (0) | 2014.12.09 |
[PHP] 대입 연산자 (0) | 2014.12.08 |