여러분이 사용하고 계신 브라우저는 HTML5를 지원하지 않기 때문에 몇몇 요소가 제대로 보이도록 JScript를 사용하고 있습니다. 하지만 여러분의 브라우저 설정에서 스크립트 기능이 꺼져있으므로, 현재 페이지를 제대로 확인하시려면 스크립트 기능을 켜주셔야 합니다. PHP - 기초 - 배열
PHP – 기초 – 배열
2년전 작성
9개월전 수정

배열

배열은 하나의 단일 변수에 여러 값을 저장한다.

목차

배열이란?

배열은 한 번에 둘 이상의 값을 보유 할 수있는 특수 변수다.

항목 목록(예: 자동차 이름 목록)이 있는 경우 자동차를 단일 변수에 저장하는 작업은 다음과 같다.

<?php
$cars1 = "볼보";
$cars2 = "BMW";
$cars3 = "포드";
?>

3개니 이렇게 해도 크게 문제는 없지만 3개가 아니라 갯수가 더 많아진다면 단일 변수에 저장하면 관리하기가 어려워진다.

그럴 때 배열을 사용한다.

PHP
<?php
$cars = array("볼보", "BMW", "포드");
echo "나는 " . $cars[0] . ", " . $cars[1] . " 그리고 " . $cars[2] . "를 좋아한다.";
?>
기본 예시
나는 볼보, BMW 그리고 포드를 좋아한다.

사용 방법

array() 함수는 배열을 만드는 데 사용된다.

배열 길이 가져오기

count() 함수는 배열의 길이 (요소 수)를 반환하는 데 사용된다.

PHP
<?php
$cars = array("볼보", "BMW", "포드");
echo count($cars);
?>
기본 예시
3

Indexed Arrays

인덱싱된 배열을 만드는 방법에는 두 가지가 있다.

인덱스는 다음과 같이 자동으로 할당 될 수 있다 (인덱스는 항상 0에서 시작됨).

$cars = array("Volvo", "BMW", "Toyota");

또는 인덱스를 수동으로 할당 할 수 있다.

$cars[0] = "Volvo";
$cars[1] = "BMW";
$cars[2] = "Toyota";
Loop Through an Indexed Array

인덱싱된 배열의 모든 값을 반복하고 인쇄하려면 다음과 같이 for 루프를 사용할 수 있다.

PHP
<?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
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");
echo "피터의 나이는 " . $age['피터'] . "세 입니다.";
}
?>
기본 예시
피터의 나이는 35세 입니다.
Loop Through an Associative Array

연관 배열의 모든 값을 반복하고 인쇄하려면 다음과 같이 foreach 루프를 사용할 수 있습니다.

PHP
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");

foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "
"; } ?>
기본 예시
Key=피터, Value=35
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 배열의 요소에 액세스하려면 두 개의 인덱스 (행과 열)를 가리켜야한다.

PHP
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].".
";
기본 예시
Volvo: In stock: 22, sold: 18.
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 "
"; } ?>
기본 예시
Row number 0

  • 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
<?php
$cars = array("Volvo", "BMW", "Ford");
sort($cars);

$clength = count($cars);
for($x = 0; $x < $clength; $x++) {
echo $cars[$x];
echo "
"; } ?>
기본 예시
BMW
Ford
Volvo

$numbers 배열의 요소를 오른차순으로 정렬한다.

PHP
<?php
$numbers = array(4, 6, 2, 22, 11);
sort($numbers);

$arrlength = count($numbers);
for($x = 0; $x < $arrlength; $x++) {
echo $numbers[$x];
echo "
"; } ?>
기본 예시
2
4
6
11
22
rsort()

$cars 배열의 요소를 알파벳순으로 내림차순으로 정렬한다.

PHP
<?php
$cars = array("Volvo", "BMW", "Toyota");
rsort($cars);
?>
기본 예시
Volvo
Ford
BMW
asort()

값에 따라 연관 배열을 오름차순으로 정렬한다.

PHP
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");
asort($age);

foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "
"; } ?>
기본 예시
Key=피터, Value=35
Key=벤, Value=37
Key=조, Value=43
ksort()

키에 따라 연관 배열을 오름차순으로 정렬한다.

PHP
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");
ksort($age);

foreach($age as $x => $x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "
"; } ?>
기본 예시
Key=벤, Value=37
Key=조, Value=43
Key=피터, Value=35
arsort()

값에 따라 연관 배열을 내림차순으로 정렬한다.

PHP
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");
arsort($age);

foreach($age as $x => $x_value) {
echo "Key=" . $x . ", Value=" . $x_value;
echo "
"; } ?>
기본 예시
Key=조, Value=43
Key=벤, Value=37
Key=피터, Value=35
krsort()

키에 따라 연관 배열을 내림차순으로 정렬한다.

PHP
<?php
$age = array("피터"=>"35", "벤"=>"37", "조"=>"43");
krsort($age);

foreach($age as $x => $x_value) {
  echo "Key=" . $x . ", Value=" . $x_value;
  echo "
"; } ?>
기본 예시
Key=피터, Value=35
Key=조, Value=43
Key=벤, Value=37
참고

Mingg`s Diary
밍구
공부 목적 블로그