본문 바로가기

PHP/PHP Programming

[PHP] 2차원 배열

반응형




■ 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