배열로는 하나나 그 이상의 값들을 하나의 변수 이름에 저장할 수 있습니다.
배열이란 무엇인가?
PHP로 작업할때, 머지않아 곧 많은 유사한 변수들을 만들고 싶을때가 생기실 겁니다.
많은 유사한 변수값들을 가지는 대신에, 여러분은 자료들을 배열의 하위 요소러서 저장할 수 있습니다.
배열에 있는 각 요소는 그것 자신만의 ID를 가지고 있어서 쉽게 액세스 될 수 있습니다.
배열에는 3가지의 다른 종류가 있습니다:
- 숫자형 배열(Numeric array) - 숫자로된 ID키를 가진 배열
- 문자형 배열(Associative array) - ID키로 숫자대신 문자열을 사용한 배열
- 다차원 배열(Multidimensional array) - 하나 혹은 그 이상의 배열을 포함한 배열
숫자형 배열(Numeric Arrays)
숫자형 배열은 각 요소를 숫자형 ID키(하나의 변수에 여러값을 넣으려면 꼬리표 같은게 필요하겠죠?)와 함께 저장합니다.
숫자형 배열을 만드는 방법에는 몇가지 다른 방법이 있군요.
예제 1
이 예제에서 ID키는 자동으로 할당됩니다:
$names = array("Peter","Quagmire","Joe"); |
예제 2
이 예제에서는 직접 하나 하나의 요소에 ID키를 할당하죠:
$names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; |
ID키는 스크립트에서 사용될 수 있습니다:
<?php $names[0] = "Peter"; $names[1] = "Quagmire"; $names[2] = "Joe"; echo $names[1] . " and " . $names[2] . " are ". $names[0] . "'s neighbors"; ?> |
위의 코드는 아래와 같이 출력되죠:
Quagmire and Joe are Peter's neighbors |
문자형 배열(Associative Arrays)
문자형 배열은, 구분키라고 할 수 있는 ID키로 숫자대신 문자를 사용합니다.
특정한 이름을 가진 값에 대해 자료를 저장할때에, 숫자형 배열이 항상 최상의 방법은 아닙니다.
문자형 배열을 통해, 여러분은 문자열을 각각의 배열을 구분하는 키로서 쓸수있고, 문자열로 구분된
각각의 배열에 값을 쉽게 할당할 수 있습니다.
예제 1
이 예제에서 각각의 다른 사람에게 나이를 할당하는 데에 문자열 배열을 사용할 수 있네요:
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34); |
예제 2
이 예제는 예제1과 같지만, 같은 배열을 만든느 다른 형태의 방법을 보여줍니다:
$ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; |
문자열 ID키는 스크립트에서 다음과 같이 사용될 수 있습니다:
<?php $ages['Peter'] = "32"; $ages['Quagmire'] = "30"; $ages['Joe'] = "34"; echo "Peter is " . $ages['Peter'] . " years old."; ?> |
위의 코드는 아래와 같이 출력됩니다:
Peter is 32 years old. |
다차원 배열(Multidimensional Arrays)
다차원 배열에서, 최상위 배열의 하위 요소로 배열을 사용하는 것이 가능합니다.
그리고 하위 요소로 포함된 배열에 포함된 각각의 요소들 또한 배열이 될 수 있습니다.
헷갈리시면, 예제를 한번 보세요.
예제
이 예제에서, 자동으로 ID키가 할당된 다차원 배열을 생성해 보겠습니다:
$families = array ( "Griffin"=>array ( "Peter", "Lois", "Megan" ), "Quagmire"=>array ( "Glenn" ), "Brown"=>array ( "Cleveland", "Loretta", "Junior" ) ); |
위의 배열에 출력때 쓰려면, 일단 아래와 같은 구조임을 알아야 겠죠.
Array ( [Griffin] => Array ( [0] => Peter [1] => Lois [2] => Megan ) [Quagmire] => Array ( [0] => Glenn ) [Brown] => Array ( [0] => Cleveland [1] => Loretta [2] => Junior ) ) |
예제 2
위의 배열로부터 하나의 개별값을 표시해 봅시다:
echo "Is " . $families['Griffin'][2] . " a part of the Griffin family?"; |
위의 코드는 아래와 같이 출력됩니다:
Is Megan a part of the Griffin family? |