배열을 실제로 hash tables (associative arrays) 과 indexed arrays (vectors)의 두가지로 동시에 사용된다.
PHP는 scalar 배열과 associative 배열의 두 가지를 지원한다. 사실 두 가지의 차이는 없다. 여러분은 list() 나array() 함수를 사용하여 배열을 만들거나, 각 원소의 값을 정해 주어 배열을 만들 수 있다.
또한 다음과 같이 변수에 값을 더해주는 것만으로 배열을 만들 수도 있다. 배열 변수에 빈 대괄호([])를 붙이고 값을 지정하면, 해당 배열의 맨뒤에 한 원소가 추가되고 그 값이 이 추가된 원소에 저장된다.
배열은 정렬을 원하는 형식에 따라 asort(), arsort(), ksort(), rsort(), sort(), uasort(), usort(), uksort() 함수들을 이용해 순서대로 정렬할 수 있다.
count() 함수를 사용하면 배열의 원소 개수를 셀 수 있다.
next()와 prev()함수를 이용하여 배열의 내용을 탐색할 수 있다. 배열의 내용을 탐색하는 방법으로 each()함수를 사용할 수도 있다.
다차원 배열도 실제로 매우 간단한다. 배열의 각 차원에 대하여 단지 [key]값을 뒤에 붙여주면 된다.:
$a[1] = $f; # 일차원 배열의 예제 $a["foo"] = $f; $a[1][0] = $f; # 이차원 배열의 예제 $a["foo"][2] = $f; # (배열 지시자를 숫자와 문자로 혼합할수 있다) $a[3]["bar"] = $f; # (배열 지시자를 숫자와 문자로 혼합할수 있다) $a["foo"][4]["bar"][0] = $f; # 4차원배열! |
PHP3에서, 문자열 내에서 다차원 배열의 값을 직접 접근하는 것은 불가능하다. 예를들어 다음과 같은 문장은 원하는 결과를 얻지 못할 것이다.:
PHP3에서 위의 출력은 This won't work: Array[bar] 일 것이다. 원하는 결과를 얻으려면 문자열 연결 연산자(.)를 사용하여야 할 것이다. :PHP4에서는 접근하려는 배열식을 중괄호({})로 둘러쌈으로써 이것이 가능하다.:
여러 가지 방법으로 이 다차원 배열에 값을 넣을 수 있으나, associative 배열에 값을 저장하는 간단한 방법으로 array() 명령을 사용하는 방법이 있다. 우선 다음의 두가지 코드는 일차원 배열에 값을 저장하는 방법으로 결과는 동일하다.:
# Example 1: $a["color"] = "red"; $a["taste"] = "sweet"; $a["shape"] = "round"; $a["name"] = "apple"; $a[3] = 4; # Example 2: $a = array( "color" => "red", "taste" => "sweet", "shape" => "round", "name" => "apple", 3 => 4 ); |
array() 함수는 다차원 배열에 대해서도 다음과 같이 사용할 수 있다. :
<?php $a = array( "apple" => array( "color" => "red", "taste" => "sweet", "shape" => "round" ), "orange" => array( "color" => "orange", "taste" => "tart", "shape" => "round" ), "banana" => array( "color" => "yellow", "taste" => "paste-y", "shape" => "banana-shaped" ) ); echo $a["apple"]["taste"]; # will output "sweet" ?> |