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

PHP 인덱스 배열 완벽 정리: 생성 방법부터 순회와 수정까지

인덱스 배열이란?

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 루프를 사용할 수 있습니다.