배열은 정말 중요합니다. 저희가 데이터를 처리하다보면 여러개의 값을 가지는 경우 이것을 하나의 변수에 저장을 해야 할 경우 배열을 사용해야 하는데 db에서 가져오는 많은 데이터가 배열의 구조를 가지고 있어서 앞으로 라이믹스 등에 응용프로그램을 작성하거나 수정 또는 해석하기 위해서는 배열을 이해를 하고 있어야 합니다.
먼저 다차원 배열이 아닌 1차원 배열은 이미 학습을 했어야 하는데
array(), [] 의 형태로 배열을 사용할 수 있다고 학습을 했습니다.
$members = array('영희', '철수', '길동');
키값을 따로 지정하지 않은 배열입니다. 키값을 따로 지정하지 않으면 0번부터 순서대로 가진다고 생각해야 합니다.
$members = ['영희', '철수', '길동'];
[] 대괄호를 사용해서 축약식으로 사용할 수도 있습니다.
그럼 다차원 배열은 배열의 값이 '영희' 와 같은 문자열 등의 값이 아닌 배열을 가질수 있다는 것입니다.
$members = array(array1, array2);
와 같이 배열 안에 또 배열이 존재하는 다차원 배열로 값을 가질 수 있습니다. 이 다차원 배열도 꼭 개념을 이해해야 합니다. 많은 데이터가 1차원이 아닌 다차원의 값을 가지는 경우가 많습니다.
지금 설명을 키값이 생략된 배열로 간단하게 설명을 했는데 키값을 부여해서 보아야 더 이해가 쉽게 될 수도 있겠습니다.
$members = array('ClassA' => array(1 => '영희', 2 => '철수', 3 => '길동'),
'ClassB' => array(1 => '수지', 2 => '보검', 3 => '보영'));
학교 수학시간에 행렬을 배워던 기억이 나는데 행렬과 비슷한 개념이라고 할 수도 있겠습니다.
$members[ClassA][1] 은 '영희' 값을 가지게 되는 것 이고 이렇게 접근도 가능합니다.
$members = array('ClassA' => array(1 => '영희', 2 => '철수', 3 => '길동'),
'ClassB' => array(1 => '수지', 2 => '보검', 3 => '보영'));
foreach ($members as $class => $class_members) {
foreach ($class_members as $nmuber => $member) {
print "$class 학급 $nmuber 번 학생의 이름은 $member 입니다.\n<br>";
}
}
위와 같이 foreach 배열을 순환시켜서 값을 출력해 줄 수 있구요.
$members 전체 배열 의 키가 $class에 값(배열)이 $class_members 에 담기게 되고
또 그 안의 foreach 에서 $class_members 에 담긴 배열의 키값(번호)이 $nmuber에 값에 해당하는 이름이 $member에 담겨서 반복이 되게 됩니다.
ClassA 학급 1 번 학생의 이름은 영희 입니다.
ClassA 학급 2 번 학생의 이름은 철수 입니다.
ClassA 학급 3 번 학생의 이름은 길동 입니다.
ClassB 학급 1 번 학생의 이름은 수지 입니다.
ClassB 학급 2 번 학생의 이름은 보검 입니다.
ClassB 학급 3 번 학생의 이름은 보영 입니다.
이렇게 2개의 클래스 * 3명의 학생 총 6명의 명단이 출력이 되게 됩니다.
다중배열은 배열의 값으로 또 배열을 가질 수 있다는 개념을 꼭 숙지하고 이해를 하고 넘어가야 하며 이해가 가지 않는다면 다시 이해하도록 살펴보고 나중에 기억이 흐릿해지면 다시 읽어보고 하면 이해가 갈 것입니다.
배열에서 원소의 키, 값에 대한 구조에 대해 익히시면 다차원이라도 이해가 어렵지는 않을 수 있습니다.