루젠소프트 로고

216.73.216.198 TODAY : 1,365

PHP 강의

 > 

PHP - 초급

📚 PHP 초급 - 6주차: 배열 - 02 인덱스 배열, 연관 배열

📚 PHP 초급 - 6주차: 배열 - 02 인덱스 배열, 연관 배열
평점 10.0 라이센스 free
사용자평점 10.0 운영체제
다운로드 1 파일크기 0
제작사 LUZENSOFT 등록일 2025-06-28 18:05:18
조회수 5
- 설명

📚 PHP 초급 - 6주차: 배열 - 02 인덱스 배열, 연관 배열





안녕하세요! #PHP 초급 강좌 6주차 두 번째 시간입니다. 지난 시간에는 #PHP #배열 의 기본적인 선언 및 초기화 방법에 대해 알아보았습니다. 이번 시간에는 PHP 배열의 핵심적인 두 가지 종류인 인덱스 배열 (Indexed Array)연관 배열 (Associative Array) 에 대해 자세히 살펴보겠습니다. 이 두 가지 배열 유형을 이해하는 것은 PHP에서 데이터를 효율적으로 관리하는 데 매우 중요합니다.





1. 인덱스 배열 (Indexed Array)

uploadImage


#인덱스배열 은 각 요소에 자동으로 0부터 시작하는 숫자 형태의 인덱스가 순차적으로 할당되는 배열입니다. 배열을 선언하고 값을 순서대로 나열하면, PHP가 자동으로 각 값에 정수형 인덱스를 부여합니다.



선언 및 초기화 방법:

인덱스 배열은 array() 함수나 짧은 배열 문법 [] 를 사용하여 선언하고 초기화할 수 있으며, 값을 순서대로 나열하면 됩니다.



예시:

PHP

<?php
// array() 함수 사용
$colors1 = array("빨강", "초록", "파랑");

// 짧은 배열 문법 [] 사용 (권장)
$colors2 = ["노랑", "분홍", "보라"];

// 배열 내용 확인
echo "colors1 배열: ";
print_r($colors1);
echo "<br><br>";
// 출력: colors1 배열: Array ( [0] => 빨강 [1] => 초록 [2] => 파랑 )

echo "colors2 배열: ";
print_r($colors2);
echo "<br><br>";
// 출력: colors2 배열: Array ( [0] => 노랑 [1] => 분홍 [2] => 보라 )

// 요소 접근
echo "colors1의 첫 번째 요소: " . $colors1[0] . "<br>"; // 출력: colors1의 첫 번째 요소: 빨강
echo "colors2의 두 번째 요소: " . $colors2[1] . "<br>"; // 출력: colors2의 두 번째 요소: 분홍
?>



특징:

  • 요소들은 순서대로 저장되며, 숫자 인덱스를 통해 각 요소에 접근합니다.

  • 주로 순서가 중요한 데이터 목록을 관리할 때 유용합니다 (예: 상품 목록, 사용자 목록 등).

  • 인덱스는 0부터 시작하여 1씩 증가합니다.





2. 연관 배열 (Associative Array)

uploadImage

#연관배열 은 각 요소에 문자열 형태의 키 (key) 를 사용하여 값을 연결하는 배열입니다. 숫자 인덱스 대신 의미 있는 문자열 키를 사용하여 값에 접근하므로, 데이터의 의미를 명확하게 표현하고 관리하는 데 유용합니다. 다른 언어에서는 "맵(Map)", "딕셔너리(Dictionary)" 와 유사한 개념입니다.



선언 및 초기화 방법:

연관 배열을 선언하고 초기화할 때는 각 값에 대해 키 => 값 형태를 지정합니다.



예시:

PHP

<?php
// array() 함수 사용
$person1 = array(
    "name" => "김민수",
    "age" => 28,
    "city" => "대구"
);

// 짧은 배열 문법 [] 사용 (권장)
$person2 = [
    "name" => "박선영",
    "age" => 32,
    "country" => "한국"
];

// 배열 내용 확인
echo "person1 배열: ";
print_r($person1);
echo "<br><br>";
/* 출력:
person1 배열: Array
(
    [name] => 김민수
    [age] => 28
    [city] => 대구
)
*/

echo "person2 배열: ";
print_r($person2);
echo "<br><br>";
/* 출력:
person2 배열: Array
(
    [name] => 박선영
    [age] => 32
    [country] => 한국
)
*/

// 요소 접근
echo "person1의 이름: " . $person1["name"] . "<br>"; // 출력: person1의 이름: 김민수
echo "person2의 나이: " . $person2["age"] . "<br>";   // 출력: person2의 나이: 32
?>



특징:

  • 각 요소는 문자열 키와 연결되어 값에 접근합니다.

  • 데이터의 의미를 명확하게 표현할 수 있어, 설정 정보나 레코드 형태의 데이터를 관리할 때 유용합니다.

  • 키는 유일해야 합니다 (같은 키를 여러 번 사용하면 마지막에 할당된 값으로 덮어쓰여집니다).

  • 요소의 순서는 정의한 순서대로 유지되지만, 키를 기준으로 정렬하는 함수를 사용할 수도 있습니다.





3. 인덱스 배열과 연관 배열의 혼합

uploadImage


PHP의 배열은 인덱스 배열과 연관 배열의 특징을 하나의 배열 안에서 혼합하여 사용할 수 있는 매우 유연한 구조를 가지고 있습니다.



예시:

PHP

<?php
$mixedArray = [
    "apple",     // 인덱스 0
    "banana",    // 인덱스 1
    "name" => "최지훈", // 키 "name"
    "age" => 25,   // 키 "age"
    "cherry"     // 인덱스 2 (이전 숫자 인덱스에서 자동 증가)
];

echo "혼합 배열: ";
print_r($mixedArray);
/* 출력:
혼합 배열: Array
(
    [0] => apple
    [1] => banana
    [name] => 최지훈
    [age] => 25
    [2] => cherry
)
*/

echo "<br>";
echo "첫 번째 요소 (인덱스): " . $mixedArray[0] . "<br>";   // 출력: 첫 번째 요소 (인덱스): apple
echo "이름 (키): " . $mixedArray["name"] . "<br>";      // 출력: 이름 (키): 최지훈
echo "마지막 요소 (인덱스): " . $mixedArray[2] . "<br>"; // 출력: 마지막 요소 (인덱스): cherry
?>



혼합 배열은 다양한 형태의 데이터를 하나의 구조로 관리해야 할 때 유용하게 활용될 수 있습니다.





4. 배열의 키와 값 확인

uploadImage


배열의 키와 값들을 확인하는 데 유용한 내장 함수들이 있습니다.

  • array_keys(): 배열의 모든 키를 담은 새로운 배열을 반환합니다.

  • array_values(): 배열의 모든 값을 담은 새로운 배열을 반환합니다.



예시:

PHP

<?php
$person = [
    "name" => "송혜교",
    "age" => 38,
    "occupation" => "배우"
];

$keys = array_keys($person);
echo "배열의 키: ";
print_r($keys);
echo "<br>";
// 출력: 배열의 키: Array ( [0] => name [1] => age [2] => occupation )

$values = array_values($person);
echo "배열의 값: ";
print_r($values);
echo "<br>";
// 출력: 배열의 값: Array ( [0] => 송혜교 [1] => 38 [2] => 배우 )
?>





결론


이번 시간에는 #PHP #배열 의 두 가지 주요 유형인 #인덱스배열 과 #연관배열 에 대해 자세히 알아보았습니다. 숫자 인덱스를 사용하는 인덱스 배열과 문자열 키를 사용하는 연관 배열의 특징 및 활용 방법을 이해하는 것은 PHP 프로그래밍의 기초를 다지는 데 매우 중요합니다. 또한, PHP 배열은 이 두 가지 유형을 혼합하여 사용할 수 있는 유연성을 제공한다는 점도 기억해 두시기 바랍니다.