배열
배열은 하나의 단일 변수에 여러 값을 저장한다.
배열이란?
배열은 한 번에 둘 이상의 값을 보유 할 수있는 특수 변수다.
항목 목록(예: 자동차 이름 목록)이 있는 경우 자동차를 단일 변수에 저장하는 작업은 다음과 같다.
<?php $cars1 = "볼보"; $cars2 = "BMW"; $cars3 = "포드"; ?>
3개니 이렇게 해도 크게 문제는 없지만 3개가 아니라 갯수가 더 많아진다면 단일 변수에 저장하면 관리하기가 어려워진다.
그럴 때 배열을 사용한다.
<?php $cars = array("볼보", "BMW", "포드"); echo "나는 " . $cars[0] . ", " . $cars[1] . " 그리고 " . $cars[2] . "를 좋아한다."; ?>
사용 방법
array() 함수는 배열을 만드는 데 사용된다.
배열 길이 가져오기
count() 함수는 배열의 길이 (요소 수)를 반환하는 데 사용된다.
<?php $cars = array("볼보", "BMW", "포드"); echo count($cars); ?>
Indexed Arrays
인덱싱된 배열을 만드는 방법에는 두 가지가 있다.
인덱스는 다음과 같이 자동으로 할당 될 수 있다 (인덱스는 항상 0에서 시작됨).
$cars = array("Volvo", "BMW", "Toyota");
또는 인덱스를 수동으로 할당 할 수 있다.
$cars[0] = "Volvo"; $cars[1] = "BMW"; $cars[2] = "Toyota";
Loop Through an Indexed Array
인덱싱된 배열의 모든 값을 반복하고 인쇄하려면 다음과 같이 for 루프를 사용할 수 있다.
<?php $cars = array("볼보", "BMW", "포드"); $arrlength = count($cars); for($x = 0; $x < $arrlength; $x++) { echo $cars[$x]; echo "
"; } ?>
BMW
포드
Associative Arrays
연관 배열은 사용자가 할당하는 명명된 키를 사용하는 배열이다.
연관 배열을 만드는 방법에는 두 가지가 있다.
$age = array("Peter"=>"35", "Ben"=>"37", "Joe"=>"43");
또는
$age['Peter'] = "35"; $age['Ben'] = "37"; $age['Joe'] = "43";
이런식으로 만들 수 있다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); echo "피터의 나이는 " . $age['피터'] . "세 입니다."; } ?>
Loop Through an Associative Array
연관 배열의 모든 값을 반복하고 인쇄하려면 다음과 같이 foreach 루프를 사용할 수 있습니다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
Key=벤, Value=37
Key=조, Value=43
Multidimensional Arrays
다차원 배열은 하나 이상의 배열을 포함하는 배열이다.
PHP는 두 개, 세 개, 네 개, 다섯 개 또는 그 이상의 레벨 깊이의 다차원 배열을 지원한다.
그러나 세 차원 이상의 배열은 대부분의 사람들이 관리하기가 어렵다.
배열의 차원은 요소를 선택하는 데 필요한 인덱스 수를 나타낸다.
- 이차원 배열의 경우 요소를 선택하려면 두 개의 인덱스가 필요하다.
- 입체 배열의 경우 요소를 선택하기 위해 세 개의 인덱스가 필요하다.
이차원 배열
이차원 배열은 배열의 배열이다 (입체 배열은 배열 배열의 배열이다).
Name | Stock | Sold |
---|---|---|
Volvo | 22 | 18 |
BMW | 15 | 13 |
Saab | 5 | 2 |
Land Rover | 17 | 15 |
위의 표를 다음과 같이 이차원 배열로 만들 수 있다.
$cars = array ( array("Volvo",22,18), array("BMW",15,13), array("Saab",5,2), array("Land Rover",17,15) );
이제 이차원 $cars 배열에는 네 개의 배열이 포함되어 있으며 행과 열이라는 두 개의 인덱스가 있다.
$cars 배열의 요소에 액세스하려면 두 개의 인덱스 (행과 열)를 가리켜야한다.
echo $cars[0][0].": In stock: ".$cars[0][1].", sold: ".$cars[0][2].".
"; echo $cars[1][0].": In stock: ".$cars[1][1].", sold: ".$cars[1][2].".
"; echo $cars[2][0].": In stock: ".$cars[2][1].", sold: ".$cars[2][2].".
"; echo $cars[3][0].": In stock: ".$cars[3][1].", sold: ".$cars[3][2].".
";
BMW: In stock: 15, sold: 13.
Saab: In stock: 5, sold: 2.
Land Rover: In stock: 17, sold: 15.
$cars 배열의 요소를 가져 오기 위해 다른 for 루프 안에 for 루프를 넣을 수도 있다 (우리는 여전히 두 개의 인덱스를 가리켜야한다).
<?php for ($row = 0; $row < 4; $row++) { echo "Row number $row
"; echo "
- ";
for ($col = 0; $col < 3; $col++) {
echo "
- ".$cars[$row][$col]." "; } echo "
- Volvo
- 22
- 18
Row number 1
- BMW
- 15
- 13
Row number 2
- Saab
- 5
- 2
Row number 3
- Land Rover
- 17
- 15
Sorting Arrays
배열에 대한 정렬 함수를 알아보자.
- sort() – 오름차순으로 배열 정렬
- rsort() – 내림차순으로 배열 정렬
- asort() – 값에 따라 오름차순으로 연관 배열 정렬
- ksort() – 키에 따라 오름차순으로 연관 배열 정렬
- arsort() – 값에 따라 연관 배열을 내림차순으로 정렬
- krsort() – 키에 따라 내림차순으로 연관 배열 정렬
sort()
$cars 배열의 요소를 알파벳순으로 오름차순으로 정렬한다.
<?php $cars = array("Volvo", "BMW", "Ford"); sort($cars); $clength = count($cars); for($x = 0; $x < $clength; $x++) { echo $cars[$x]; echo "
"; } ?>
Ford
Volvo
$numbers 배열의 요소를 오른차순으로 정렬한다.
<?php $numbers = array(4, 6, 2, 22, 11); sort($numbers); $arrlength = count($numbers); for($x = 0; $x < $arrlength; $x++) { echo $numbers[$x]; echo "
"; } ?>
4
6
11
22
rsort()
$cars 배열의 요소를 알파벳순으로 내림차순으로 정렬한다.
<?php $cars = array("Volvo", "BMW", "Toyota"); rsort($cars); ?>
Ford
BMW
asort()
값에 따라 연관 배열을 오름차순으로 정렬한다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); asort($age); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
Key=벤, Value=37
Key=조, Value=43
ksort()
키에 따라 연관 배열을 오름차순으로 정렬한다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); ksort($age); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
Key=조, Value=43
Key=피터, Value=35
arsort()
값에 따라 연관 배열을 내림차순으로 정렬한다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); arsort($age); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
Key=벤, Value=37
Key=피터, Value=35
krsort()
키에 따라 연관 배열을 내림차순으로 정렬한다.
<?php $age = array("피터"=>"35", "벤"=>"37", "조"=>"43"); krsort($age); foreach($age as $x => $x_value) { echo "Key=" . $x . ", Value=" . $x_value; echo "
"; } ?>
Key=조, Value=43
Key=벤, Value=37