본문 바로가기
IT/php

2021-01-26-배열

by 봉즙 2023. 2. 27.

layout : post
title : "배열"

category : PHP

PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합

맵(map)은 한 쌍의 키(key)와 값(value)으로 구성

배열의 종류

  1. 1차원 배열

  2. 다차원 배열

3. 연관 배열

1차원 배열

array()라는 함수를 통해 배열 생성

$배열이름 = array();

배열 요소의 참조

배열 요소에 접근하기 위해 인덱스(index)를 사용

$배열이름[인덱스]

사용하여 접근하며 인덱스로 String 또한 사용 가능하다.

문자열을 사용하는 배열을 연관 배열(associative array)이라 한다.

배열 요소의 추가

선언과 동시에 초기화

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

선언 후 요소 추가

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

해당 배열이 존재 하지 않으면 생성 후 추가된다

$arr[0] = "apple";  // 배열이 존재하지 않으므로, 먼저 배열을 생성한 후에 요소가 추가됨.
$arr[1] = "banana";
$arr[2] = "orange";

인덱스 생략

$arr[] = "apple";  // 배열 인덱스를 생략하여, 순서대로 배열에 추가됨.
$arr[] = "banana";
$arr[] = "orange"
  • 위 경우 0부터 인덱스가 시작하며 1씩 증가

배열의 홀(hole)

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

$arr = array();            // 배열의 생성

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

10 이외의 배열은 NULL을 가진다

루프를 이용한 배열로의 접근

$arr = array("apple", "banana", "orange");
for($i = 0; $i < count($arr); $i++){
    echo $arr[$i]."<br>";
}
  • count() 함수는 배열의 모든 요소 개수를 반환

count() 함수는 배열 요소의 개수를 계산할 때 배열의 홀(hole)을 포함하지 않기 때문에 홀을 가지는 배열에서는 정확한 배열의 길이를 구할 수 없다.

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

다차원 배열

2차원 이상의 배열을 의미하며, 배열 요소로 또 다른 배열을 사용

// 2차원 배열
$배열이름 = array(
    array(),
    array(),
    ...
);

// 3차원 배열
$배열이름 = array(
    array(

        array(),

        array(),

        ...

    ),
    array(

        array(),

        array(),

        ...

    ),
    ...
);
$배열이름 = array(
    array(배열요소00, 배열요소01, ...),
    array(배열요소10, 배열요소11, ...),
    ...
);
for($row = 0; $row < 3; $row++) {
    for($column = 0; $column < count($arr[$row]); $column++){
        echo $arr[$row][$column].", ";
    }
}

연관 배열

배열의 인덱스를 정수뿐만이 아닌 다양한 타입으로 설정한 배열을 의미

$array = array("apple" => 1000); // 연관 배열 생성과 동시에 초기화
$array["banana"] = 2000;         // 생성된 연관 배열에 요소 추가
$array["orange"] = 1500;

'IT > php' 카테고리의 다른 글

2021-01-26-상수  (0) 2023.02.27
2021-01-26-상속  (0) 2023.02.27
2021-01-26-변수  (0) 2023.02.27
2021-01-26-기본타입  (0) 2023.02.27
2021-01-26-static  (0) 2023.02.27

댓글