Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP 다차원 배열 완벽 정리: 개념과 실전 예제

다차원 배열(Multidimensional Array)이란 하나 이상의 배열을 요소로 포함하는 배열을 말합니다. 메인 배열의 각 요소가 배열일 수 있고, 그 하위 배열의 각 요소 역시 또 다른 배열일 수 있으며, 이러한 구조는 원하는 만큼 계속 중첩될 수 있습니다. 다차원 배열에 저장된 값은 여러 개의 인덱스를 사용하여 접근합니다.

다차원 배열의 기본 구조

PHP에서 다차원 배열은 주로 연관 배열(키-값 형태) 또는 숫자 인덱스 배열을 중첩하는 방식으로 만듭니다. 예를 들어 학생별 과목 점수를 저장할 때, 학생 이름을 키로 하고 그 값으로 과목별 점수 배열을 담는 2차원 배열을 활용하면 데이터를 직관적으로 관리할 수 있습니다.

예제 1: 2차원 연관 배열

PHP에서 다차원 배열을 구현하는 코드는 다음과 같습니다.

<?php
$marks = array(
    "kevin" => array (
        "physics" => 95,
        "maths" => 90,
    ),
    "ryan" => array (
        "physics" => 92,
        "maths" => 97,
    ),
);
    echo "Marks for kevin in physics : ";
    echo $marks['kevin']['physics'] . "\n";
    echo "Marks for ryan in maths : ";
    echo $marks['ryan']['maths'] . "\n";
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Marks for kevin in physics : 95
Marks for ryan in maths : 97

위 예제에서 볼 수 있듯이, $marks['kevin']['physics']처럼 두 개의 인덱스(대괄호)를 연달아 사용하여 특정 값에 접근합니다. 첫 번째 인덱스는 학생 이름을, 두 번째 인덱스는 과목명을 가리킵니다.

예제 2: 3차원 배열 생성

이번에는 3차원 배열을 생성하는 또 다른 예제를 살펴보겠습니다. 아래 코드는 배열 안에 배열이 두 단계 더 중첩된 구조를 가집니다.

<?php
    $arr = array(
        array(
            array(100, 150),
            array(200, 250),
        ),
        array(
            array(300, 350),
            array(400, 500),
        ),
    );
    print_r($arr);
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 100
                    [1] => 150
                )
                [1] => Array
                    (
                        [0] => 200
                        [1] => 250
                    )
        )
        [1] => Array
            (
                [0] => Array
                    (
                        [0] => 300
                        [1] => 350
                    )
                    [1] => Array
                     (
                        [0] => 400
                        [1] => 500
                     )
            )
)

마무리

다차원 배열은 표 형태의 데이터, 카테고리별 상품 목록, 게임 보드 등 복잡한 데이터 구조를 표현할 때 매우 유용합니다. PHP에서는 foreach 반복문을 중첩하여 다차원 배열의 모든 요소를 손쉽게 순회할 수도 있으므로, 기본 구조와 인덱스 접근 방식을 잘 익혀두면 실무에서 큰 도움이 됩니다.