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 |