PHP: 배열

dev5hjae·2024년 11월 13일

PHP

목록 보기
4/8
$배열이름 = array();

PHP에서 가장 기본적 1차원 배열의 구조이다. array()라는 함수를 이용해 배열을 생성한다. 배열 이름은 배열을 선언한 후에 해당 배열에 접근하기 위해 사용한다.

$배열이름[인덱스]

PHP에서는 인덱스로 숫자뿐만 아니라 문자열을 사용할 수도 있다.
인덱스로 문자열을 사용하는 배열을 연관 배열이라고 한다.

$arr = array();     // 배열 생성
$arr[0] = "apple";  // 배열 요소 추가
$arr[1] = "banana";
$arr[2] = "orange";

인덱스를 이용하여 배열에 요소를 추가한 모습이다.

$배열이름 = array(배열요소1, 배열요소2, ...);

또한, 배열을 생성하면서 동시에 배열 요소를 초기화할 수 있다.

$arr[] = "apple";  // 배열 인덱스를 생략하여, 순서대로 배열에 추가됨.
$arr[] = "banana";
$arr[] = "orange";

이때 배열 요소의 인덱스를 생략할 수도 있는데, 이 경우에는 인덱스가 0부터 시작하여 1씩 증가하며 순서대로 저장된다.

배열의 홀(hole)

PHP에서는 배열의 특정 인덱스에만 배열 요소를 추가할 수 있다.

$arr = array();     
// 배열의 생성
$arr[10] = "banana"; 
// 인덱스 10에만 배열 요소를 추가함.

var_dump($arr);
var_dump($arr[0]);         // NULL
var_dump(isset($arr[0]));  // false
var_dump(isset($arr[10])); // true
  • 요소가 존재하는 인덱스는 10뿐이며, 나머지 인덱스는 배열 요소가 존재하지 않는다.
  • 이렇게 인덱스에 대응하는 배열 요소가 없는 부분을 배열의 홀(hole)이라고 한다.
  • PHP에서 이러한 배열의 홀(hole)을 참조하게 되면, 초기화되지 않은 변수를 참조할 때처럼 NULL을 반환한다.
$arr = array(); // 배열의 생성 
$arr[2] = "apple";
$arr[3] = "banana";
$arr[4] = "orange";
// $arr[0]과 $arr[1]은 배열의 홀(hole)이 됨.

for ($i = 0; $i < count($arr); $i++) {

    echo "\\$arr[{$i}] : ".$arr[$i]."<br>";

}

foreach ($arr as $element){

    echo $element."<br>";

}
  • 하지만 홀(hole)을 가지는 배열에서는 for문을 사용하면 모든 배열 요소에 접근할 수 없다.
  • PHP에서는 특별한 반복문인 foreach문을 제공하여 for문보다 간편하게 배열 요소에 접근할 수 있도록 해준다.
  • 위의 코드에서 count() 함수는 배열 요소의 개수를 계산할 때 배열의 홀(hole)을 포함하지 않는다.
  • 따라서 홀을 가지는 배열에서는 정확한 배열의 길이를 구할 수 없다. 하지만 foreach문을 사용하면 예시 코드와 같이 홀이 아닌 배열 요소에만 정확히 접근할 수 있다.

0개의 댓글