다차원 배열(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 반복문을 중첩하여 다차원 배열의 모든 요소를 손쉽게 순회할 수도 있으므로, 기본 구조와 인덱스 접근 방식을 잘 익혀두면 실무에서 큰 도움이 됩니다.