인덱스 배열이란?
PHP에서 인덱스 배열(Indexed Array)은 키=>값 쌍 대신 값만 쉼표로 나열한 배열을 의미합니다. 이러한 컬렉션의 각 요소는 0부터 시작하는 고유한 위치 인덱스를 자동으로 부여받기 때문에 '인덱스 배열'이라고 불립니다.
인덱스 배열은 두 가지 방식으로 초기화할 수 있습니다. 하나는 array() 함수를 사용하는 방법이고, 다른 하나는 대괄호 [] 안에 요소를 직접 넣어 할당하는 방법입니다.
기본 문법
//array() 함수를 사용한 인덱스 배열 생성 $arr = array(val1, val2, val3, ..); //대괄호 할당 방식으로 인덱스 배열 생성 $arr = [val1, val2, val3, ..];
배열의 각 요소는 PHP에서 지원하는 어떤 타입이든 될 수 있습니다. 배열 내 특정 요소는 아래와 같이 인덱스를 통해 접근할 수 있습니다.
$arr[index];
PHP 버전 지원 정보
대괄호([])를 이용한 배열 할당 문법은 PHP 5.4부터 도입되었습니다. 따라서 그 이전 버전에서는 반드시 array() 함수를 사용해야 합니다.
아래 예제들은 대괄호와 array() 함수 두 가지 방식으로 인덱스 배열을 생성하는 과정을 보여줍니다.
예제 1: 대괄호([])로 인덱스 배열 생성하기
<?php $arr = [10, "ten", 10.0, 1.0E1]; var_dump($arr); ?>
출력 결과
array(4) {
[0]=>
int(10)
[1]=>
string(3) "ten"
[2]=>
float(10)
[3]=>
float(10)
}위 결과에서 확인할 수 있듯이, 배열에는 정수(int), 문자열(string), 실수(float) 등 다양한 타입의 값이 함께 저장될 수 있습니다. 참고로 1.0E1은 지수 표기법으로 작성된 10.0이며, float 타입으로 저장됩니다.
예제 2: array() 함수로 인덱스 배열 생성하기
<?php $arr = array(10, "ten", 10.0, 1.0E1); var_dump($arr); ?>
출력 결과
array(4) {
[0]=>
int(10)
[1]=>
string(3) "ten"
[2]=>
float(10)
[3]=>
float(10)
}두 방식 모두 동일한 결과를 만들어냅니다. 상황과 코드 스타일에 맞게 선택하여 사용하면 됩니다.
배열 순회하기: for 루프와 foreach 루프
인덱스 배열의 요소들은 for 루프와 foreach 루프 두 가지 방법으로 순회(traverse)할 수 있습니다.
- for 루프: count() 함수로 배열 크기를 구한 뒤, 인덱스를 기반으로 순차 접근합니다.
- foreach 루프: 배열의 각 요소를 자동으로 하나씩 꺼내 처리하므로 더 간결합니다.
예제 3: for 루프와 foreach 루프로 배열 순회
<?php
$arr = array(10, "ten", 10.0, 1.0E1);
//for 루프 사용: count() 함수로 배열 크기 확인
for ($i = 0; $i < count($arr); $i++) {
echo $arr[$i] . " ";
}
echo "\n";
//foreach 루프 사용
foreach ($arr as $i) {
echo $i . " ";
}
?>출력 결과
10 ten 10 10 10 ten 10 10
배열 요소 수정과 새 요소 추가
대괄호 표기법을 사용하면 특정 인덱스의 값을 수정할 수 있습니다. 또한 대괄호를 비워둔 채($arr[]) 값을 할당하면, PHP가 자동으로 다음에 사용 가능한 정수 인덱스를 찾아 새 요소를 추가해 줍니다.
예제 4: 요소 수정 및 추가
<?php
$arr = array(10, "ten", 10.0, 1.0E1);
//기존 요소를 인덱스로 수정
$arr[3] = "Hello";
//다음 인덱스를 사용해 새 요소 추가
$arr[] = 100;
for ($i = 0; $i < count($arr); $i++) {
echo $arr[$i] . " ";
}
?>출력 결과
10 ten 10 Hello 100
실행 결과를 보면 인덱스 3의 값이 10에서 "Hello"로 변경되었고, 빈 대괄호 할당을 통해 인덱스 4에 100이 자동으로 추가된 것을 확인할 수 있습니다.
정리
- 인덱스 배열은 0부터 시작하는 숫자 인덱스를 가지는 배열입니다.
- 생성 방법은 array() 함수와 대괄호([]) 할당 두 가지가 있으며, 대괄호 문법은 PHP 5.4 이상에서 사용할 수 있습니다.
- 요소 접근과 수정은
$arr[index]형태로 수행하며,$arr[]로 값을 할당하면 마지막 인덱스 다음 위치에 새 요소가 추가됩니다. - 배열 순회에는 count() 함수를 활용한 for 루프나 더 간편한 foreach 루프를 사용할 수 있습니다.