PHP

21. PHP 배열

drizzle0925 2021. 3. 6. 11:01
728x90

배열(array)

배열은 순차적으로 값이 저장된 집합을 의미한다.

배열은 한 쌍의 키(key)와 값(value)으로 구성되어 있다.

배열은 많은 양의 데이터를 다루는 경우 유용하게 사용할 수 있는 타입이다.

 

PHP 배열에는 3가지의 종류가 있다.

 

1. 1차원 배열

2. 다차원 배열

3. 연관 배열


1차원 배열

1차원 배열은 가장 기본적인 배열로 문법은 다음과 같다.

 

1
$배열이름 = array();
cs
1
2
3
<?php 
    $runchMenu = array("부대찌개""갈비탕""순대국""제육볶음");
?>
cs

PHP에서는 array()라는 함수를 이용하여 배열을 생성한다.

배열 이름은 해당 배열에 접근할 때 사용된다.

이 방법을 사용하면 각각의 배열 요소가 순서대로 추가된 배열이 생성된다.


배열 요소의 참조

PHP에서는 배열 요소에 접근하기 위해 인덱스(index)를 사용한다.

PHP는 대부분의 다른 프로그래밍 언어와 동일하게 0부터 시작하는 숫자 인덱스를 지원한다.

 

배열의 각 요소를 참조하고 싶을 때는 대괄호([]) 연산자를 이용한다.

 

1
$배열이름[인덱스];
cs
1
2
3
4
<?php 
    $runchMenu = array("부대찌개""갈비탕""순대국""제육볶음");
    $runchMenup[0];
?>
cs

배열의 요소 추가

PHP 에서는 인덱스를 이용하여 배열에 요소를 추가할 수 있다.

다음 예제는 인덱스를 이용하여 요소를 추가하는 방법이다.

 

1
2
3
4
5
6
7
<?php 
    $hamburger = array();
    $hamburger[0= "불고기버거";
    $hamburger[1= "치킨버거";
    $hamburger[2= "새우버거";
    $hamburger[3= "치즈버거";
?>
cs

 

배열 선언없이 배열에 값을 대입할 경우 해당 변수를 자동으로 배열 타입으로 선언하여 배열 요소를 추가해 준다.

 

1
2
3
4
5
6
7
8
9
<?php 
    // $hamburger = array(); 배열 생성 선언을 해주지 않으면 알아서 변수를 배열 타입으로 생성한다
    $hamburger[0= "불고기버거";
    $hamburger[1= "치킨버거";
    $hamburger[2= "새우버거";
    $hamburger[3= "치즈버거";
 
    echo $hamburger[3];
?>
cs

 

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

 

1
2
3
4
5
6
7
8
9
<?php 
    // $hamburger = array(); 배열 생성 선언을 해주지 않으면 알아서 변수를 배열 타입으로 생성한다
    $hamburger[] = "불고기버거";
    $hamburger[] = "치킨버거";
    $hamburger[] = "새우버거";
    $hamburger[] = "치즈버거";
 
    echo $hamburger[0];
?>
cs

 

코드를 명확하고 하고 오류를 피하기 위해서 배열을 먼저 선언해주는 것이 바람직하다.

배열의 홀(hole)

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

 

1
2
3
4
5
6
7
<?php 
    $fruit = array();
    $fruit[5= "망고";
 
    var_dump($fruit);
    var_dump($fruit[0]); // NULL
?>
cs

 

$fruit 배열에 배열 요소가 존재하는 인덱스는 5 뿐이며, 나머지 인덱스에는 배열 요소가 존재하지 않는다.

이렇게 인덱스에 대응하는 배열 요소가 없는 부분을 배열의 홀(hole)이라고 한다.

PHP에서는 이러한 배열의 홀(hole)을 참조하게 되면 초기화되지 않은 변수를 참조할 때처럼 NULL 값을 반환한다.


루프를 이용하여 배열값에 접근하기

루프 문을 이용하면 배열의 값에 접근하기가 쉽다.

 

for 문을 이용한 예제

 

1
2
3
4
5
6
<?php 
    $fruit = array("사과","바나나","딸기","포도");
 
    for($i=0$i<count($fruit); $i++)
        echo $fruit[$i]."<br>"// for이 처리하는 라인이 1줄일 때는 중괄호({})를 생략할 수 있다
?>
cs

 

while 문을 이용한 예제

 

1
2
3
4
5
6
7
8
9
<?php 
    $fruit = array("사과","바나나","딸기","포도");
 
    $index = 0;
    while(count($fruit> $index){
        echo $fruit[$index]."<br>";
        $index++;
    }
?>
cs

 

count() 함수는 배열의 모든 요소의 개수를 반환하는 함수이다.

count - 배열에 포함되는 모든 요소, 혹은 객체에 포함되는 어떠한 수를 계산한다.

설명

count( 배열 $value, 정수 $mode) → 반환 값 : 정수

 

 

배열의 홀(hole) 있을 때 루프문을 이용하여 접근하는 예제

1
2
3
4
5
6
7
8
9
10
11
<?php 
    $fruit = array();
    $fruit[0= "사과";
    $fruit[2= "바나나";
    $fruit[4= "딸기";
    $fruit[6= "포도";
 
    for($i=0$i<count($fruit); $i++){
        echo $fruit[$i]."<br>";
    }
?>
cs

 

위의 예제에서 알 수 있듯이 count() 함수는 배열 요소의 개수를 계산할 때 배열의 홀(hole)을 포함하지 않는다.

따라서 홀을 가지는 배열에서는 정확한 배열의 길이를 구할 수 없다.

하지만 foeach 문을 사용하면 홀이 아닌 배열의 요소에만 정확히 접근할 수 있다.

 

 

foreach 문을 이용하여 접근하는 예제

 

1
2
3
4
5
6
7
8
9
10
11
<?php 
    $fruit = array();
    $fruit[0= "사과";
    $fruit[2= "바나나";
    $fruit[4= "딸기";
    $fruit[6= "포도";
 
    foreach($fruit as $value){
        echo $value."<br>";
    }
?>
cs

728x90

'PHP' 카테고리의 다른 글

23. PHP 연관배열  (0) 2021.03.06
22. PHP 다차원배열  (0) 2021.03.06
20. PHP 기타 제어문  (0) 2021.03.04
19. PHP FOR반복문  (0) 2021.03.04
18. PHP WHILE반복문  (0) 2021.03.04