7. 배열 (Array)

2018. 3. 27. 17:04프로그래밍 언어/PHP


학습목표

1. 배열이 무엇이고, 배열에 담긴 값을 어떻게 다루는지 공부한다.

2. 연관배열이 무엇인지 공부해 본다.



1. 배열

다른 언어에서 '리스트'라는 이름으로도 불리는 자료형으로 , 연관된 데이터를 모아서 관리하기 위한 자료형이다.

배열 - 여러개의 데이터를 저장 / 변수 - 하나의 데이터 저장


① 배열의 선언 방법

- 배열을 만들기 위해서 '[](대괄호)'를 사용한다.

- 배열에서 각각의 값을 '요소(elements)' 라고 부른다.

1
2
3
4
5
6
7
8
<?php
$list = ['a','b','c'];
for($i=0$i<count($list); $i++){
    echo $list[$i].'<br />';
}
var_dump($list);
 ?>
 
cs

결과>

a
b
c
array(3) { [0]=> string(1) "a" [1]=> string(1) "b" [2]=> string(1) "c" }


※ PHP 5.4 이전의 구버전에서의 배열 사용 방법

1
2
3
<?php
$배열명 = array('값''값2, ....);
?>
cs



② 배열의 값을 가져오는 방법

배열에 담겨있는 여러개의 값중 원하는 값을 가져오고 싶은데 이용할 수 있는 것이 바로 '색인(index)' 이다. 

배열의 공간들은 0부터 시작하는 색인(이하 '인덱스')을 하나씩 가지게 된다.

1
2
3
4
5
<?php
$list = ['a','b','c','d'];
echo $list[2];
 ?>
 
cs

결과> 

c


③ 배열 + 반복문 조합

1
2
3
4
5
6
7
8
9
10
11
12
<?php
function get_members(){
return ['egoing''k8804''sorialgi'];
}
 
$members = get_members();
 
for($i=0$i<count($members); $i++){
    echo ucfirst($members[$i]).'<br />';
}
?>
 
cs

결과>

Egoing
K8804
Sorialgi


- ucfirst() 함수 : Upper Case First , 즉 첫번째 오는 문자를 대문자로 변환하는 함수.

- count() 함수 : 인자로 주어진 변수의 크기를 반환하는 함수.



④ 배열 조작

(1) array_push() : 배열의 마지막에 값을 추가함

(2) array_pop() : 배열의 마지막 값을 배열에서 제거함

(3) array_shift() : 배열의 맨 앞에 데이터를 배열에서 제거함

(4) array_unshift() : 배열의 맨 앞에 데이터를 추가함


※ 변수의 정보 출력 함수 

var_dump 

print_r


 ⑤ 배열의 정렬 (Sorting)

배열의 값을 정렬하기 위해 sort() 함수를 이용하며 , 역순 정렬하려면 rsort() 함수를 이용한다.

(1) 오름차순 정렬
1
2
3
4
5
6
7
8
9
10
11
<?php
$list = ['b','c','a','d'];
sort($list);
 
for($i=0$i<count($list); $i++){
    echo $list[$i];
}
echo '<br />';
var_dump($list);
 ?>
 
cs


(2) 내림차순 정렬(Reverse Sorting)

1
2
3
4
5
6
7
8
9
10
11
<?php
$list = ['c','c','a','d'];
rsort($list);
 
for($i=0$i<count($list); $i++){
    echo $list[$i];
}
echo '<br />';
var_dump($list);
 ?>
 
cs

2. 연관 배열(Associated Array)

앞서 봐왔던 배열들은 식별자로써 '숫자'만을 사용했다. PHP에서는 식별자로 숫자가 아닌 '문자'를 이용할 수 있다. 
문자를 식별자로 이용한 배열을 '연관 배열(Associated Array)'라 한다.

1
2
3
4
5
6
<?php
$list =  ['a''b''c''d''e'];
array_unshift($list'z');
var_dump($list);
 ?>
 
cs

결과>

array(6) { [0]=> string(1) "z" [1]=> string(1) "a" [2]=> string(1) "b" [3]=> string(1) "c" [4]=> string(1) "d" [5]=> string(1) "e" }


연관 배열을 사용하는 두 가지 형식

① 배열을 따로 선언하고, 값을 하나씩 매칭 시키는 방법

1
2
3
4
5
6
7
8
9
<?php
$grade = []; # array() 와 동일
$grade['egoing'= 10;
$grade['k8805'= 8;
$grade['sorialgi'= 80;
 
var_dump($grade);
 ?>
 
cs

결과> 

array(3) { ["egoing"]=> int(10) ["k8805"]=> int(8) ["sorialgi"]=> int(80) }


② 배열을 선언하면서 동시에 매칭 시키는 방법

1
2
3
4
5
6
<?php
$grade = array('egoing' => 10'k8804' => 8'sorialgi' => 80);
 
var_dump($grade);
 ?>
 
cs

결과>

array(3) { ["egoing"]=> int(10) ["k8804"]=> int(8) ["sorialgi"]=> int(80) }


★ 결론적으로 두 방법 표현 방식만 다를 뿐이지 같은 결과물을 내놓는 것을 확인할 수 있다.


foreach() 함수 

1
2
3
4
5
6
7
<?php
$grades = array('egoing' => 10'k8804' => 8'sorialgi' => 80);
foreach($grades as $key => $value){
    echo "key: {$key} value: {$value}<br />";
}
 ?>
 
cs

결과>

key: egoing value: 10
key: k8804 value: 8
key: sorialgi value: 80


foreach($배열명 as $key => $value){

#실행할 코드

}


- 배열에 저장되어 있는 키 쌍을 가져와서 배열이 끝날 때 까지 반복 실행을 한다.

'프로그래밍 언어 > PHP' 카테고리의 다른 글

6. 함수  (0) 2018.03.25
5. 반복문  (0) 2018.03.21
4. 조건문  (0) 2018.03.19
3. 입출력과 Form  (0) 2018.03.18
2. Data Type / 변수 / 상수  (0) 2018.03.14