PHP/포스팅

[PHP] 배열

짜집퍼박사(짜박) 2024. 11. 29. 05:01

PHP에서 배열(array)은 단일 변수에 여러 값을 저장하는 자료 구조로, 다른 언어에서의 배열과는 다르게 연관 배열(associative array)의 형태를 기본적으로 제공합니다. 이는 숫자 키(인덱스)뿐 아니라 문자열 키도 사용할 수 있음을 의미합니다.

 

배열의 기본 형식

PHP 배열은 크게 두 가지 기본 유형으로 나눌 수 있습니다.

1. 인덱스 배열(Indexed Array): 숫자 키를 사용하는 배열.

2. 연관 배열(Associative Array): 문자열 키를 사용하는 배열.

 

또한 배열은 다차원으로 확장될 수 있습니다: 3. 다차원 배열(Multidimensional Array): 배열의 요소가 또 다른 배열인 구조.

 

배열 생성 방법

PHP에서 배열을 생성하는 방법은 다음과 같습니다.

 

배열 생성 기본 문법

1. array() 함수 사용 (PHP 5.x 이하 또는 호환성 요구 시)

$arr = array(1, 2, 3);

2. 대괄호([ ]) 사용 (PHP 5.4 이상)

$arr = [1, 2, 3];

 

키-값 쌍을 포함한 배열 생성

$assocArray = [
    "name" => "홍길동",
    "age" => 30
];

 

 

배열의 유형

1. 인덱스 배열 (Indexed Array)
숫자 키를 기반으로 값이 저장됩니다.

 

예제

<?php
// 방법 1: array() 사용
$fruits = array("사과", "바나나", "체리");

// 방법 2: [] 사용
$fruits = ["사과", "바나나", "체리"];

echo $fruits[0]; // 출력: 사과
?>

특징

- 키는 기본적으로 0부터 시작합니다.

- 요소를 추가할 때 키를 명시하지 않으면 자동으로 증가된 키가 할당됩니다.

 

2. 연관 배열 (Associative Array)

문자열 키를 사용해 값을 저장합니다.

 

예제

<?php
$user = [
    "name" => "홍길동",
    "age" => 30,
    "email" => "hong@example.com"
];

echo $user["name"]; // 출력: 홍길동
?>

특징

- 키를 명시적으로 지정해야 합니다.

- 데이터베이스 레코드나 JSON 데이터를 저장하는 데 유용합니다.

 

3. 다차원 배열 (Multidimensional Array)

배열의 요소로 배열을 포함할 수 있습니다.

 

예제

<?php
$matrix = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9]
];

echo $matrix[1][2]; // 출력: 6 (2번째 행, 3번째 열)
?>

또는 연관 배열의 형태로

<?php
$users = [
    ["name" => "홍길동", "age" => 30],
    ["name" => "김철수", "age" => 25]
];

echo $users[0]["name"]; // 출력: 홍길동
?>

특징

- 중첩된 배열로 복잡한 데이터 구조를 표현할 수 있습니다.

- 반복문을 중첩하여 데이터를 탐색합니다.

 

배열 조작 기본 메서드와 함수

PHP는 배열을 다룰 수 있는 여러 유용한 함수들을 제공합니다.

 

요소 추가

인덱스 배열에 추가

$arr = [1, 2, 3];
$arr[] = 4; // 배열 끝에 추가

연관 배열에 추가

$assoc = ["name" => "홍길동"];
$assoc["age"] = 30; // 새로운 키-값 추가

 

요소 삭제

unset() 함수

unset($arr[1]); // 특정 요소 삭제

 

배열 길이 확인

count() 함수

$arr = [1, 2, 3];
echo count($arr); // 출력: 3

 

배열 반복 처리

foreach 루프

$arr = [1, 2, 3];
foreach ($arr as $value) {
    echo $value . " "; // 출력: 1 2 3
}

키와 값을 함께 반복

$assoc = ["name" => "홍길동", "age" => 30];
foreach ($assoc as $key => $value) {
    echo "$key: $value\n";
}

 

배열 정렬

1. 정렬 함수

- sort(): 값 기준 오름차순 정렬 (인덱스 배열)

- asort(): 값 기준 오름차순 정렬 (연관 배열, 키 유지)

- ksort(): 키 기준 오름차순 정렬 (연관 배열)

$arr = [3, 1, 2];
sort($arr); // $arr는 [1, 2, 3]으로 정렬됨

 

배열에서 특정 값 찾기

1. in_array() 함수

$arr = [1, 2, 3];
if (in_array(2, $arr)) {
    echo "2가 배열에 있습니다.";
}

2. array_search() 함수

$arr = [1, 2, 3];
$index = array_search(2, $arr); // $index는 1

 

배열 필터링과 변형

1. array_filter(): 조건에 맞는 요소만 반환.

$arr = [1, 2, 3, 4];
$even = array_filter($arr, fn($x) => $x % 2 === 0); // 짝수만 남김

2. array_map(): 배열의 모든 요소에 함수를 적용.

$arr = [1, 2, 3];
$squared = array_map(fn($x) => $x * $x, $arr); // [1, 4, 9]

 

요약

- PHP 배열은 인덱스 배열연관 배열로 나뉘며, 동적 크기를 가지고 키와 값을 조합하여 저장합니다.

- 배열 함수를 사용하면 배열 조작이 간단해지며, 복잡한 데이터 구조도 손쉽게 관리할 수 있습니다.

- 다차원 배열과 연관 배열은 데이터 구조화에 유용하며, 반복문과 함께 자주 사용됩니다.

 

With ChatGPT

'PHP > 포스팅' 카테고리의 다른 글

[PHP] 배열 버블 정렬  (0) 2024.11.30
[PHP] 배열의 초기화  (0) 2024.11.30
[PHP] yield 제어문  (0) 2024.11.29
[PHP] return 제어문  (0) 2024.11.29
[PHP] die 제어문  (0) 2024.11.29