배열을 생성하는 방법
배열을 생성하는 방법에는 array 함수 또는 []를 사용해 생성한다.
- array 함수는 문자열 또는 변수를 인수로 지정하고 배열을 생성할 수 있다.
- 배열은 인덱스를 지정하여 생성할 수도 있다.
- 배열을 초기화하려면(배열 내에 있던 기존의 데이터를 모두 삭제) array 함수에 인수를 지정하지 않고 실행한다.
- 인덱스를 생략하고 데이터를 추가하게 되면 이때 시점의 최대 인덱스에 1을 더한 수가 인덱스가 된다.
- array 함수에 키와 데이터를 지정하면 연관 배열을 생성할 수 있다. 또한 인덱스 대신 키를 지정해도 연관 배열을 생성할 수도 있다.
- 데이터베이스에서 데이터를 가져올 때 이용하는 배열은 다차원 배열이다.
여러가지 배열을 생성하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
<?php
// 여러가지 배열을 생성하는 방법
// array 함수로 배열 생성
$arr1 = array("문자열0","문자열1","문자열2");
// 인덱스를 지정하여 배열 생성
$arr2[0] = "문자열0";
$arr2[1] = "문자열1";
$arr2[2] = "문자열2";
// 인덱스를 생략하여 배열 생성
$arr3 = array();
$arr3[] = "문자열0";
$arr3[] = "문자열1";
$arr3[] = "문자열2";
// array 함수에 키와 데이터를 지정하여 연관 배열을 생성
$arr4 = array("키0" => "문자열0","키1" => "문자열1","키2" => "문자열2");
// 키를 지정하여 연관 배열을 생성
$arr5["키0"] = "문자열0";
$arr5["키1"] = "문자열1";
$arr5["키2"] = "문자열2";
// 다차원 배열을 생성
$arr6[0] = array("키0" => "문자열0","키1" => "문자열1","키2" => "문자열2");
$arr6[1] = array("키0" => "문자열0","키1" => "문자열1","키2" => "문자열2");
$arr6[2] = array("키0" => "문자열0","키1" => "문자열1","키2" => "문자열2");
?>
|
cs |
배열의 데이터를 모두 변수에 할당하는 방법
배열이 가지고 있는 데이터는 순서대로 변수에 넣을 수 있다. 이런 방법은 변수에서 여러 개의 값을 돌려받을 때 이용한다.
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
//배열에 데이터를 모두 변수에 할당하는 방법
$data = array("사과","귤","감");
// list 함수를 이용해 배열에 데이터를 변수에 할당
list($fruit0,$fruit1,$fruit2) = $data;
// 위의 코드와 동일한 코드
$fruit0 = $data[0];
$fruit1 = $data[1];
$fruit2 = $data[2];
?>
|
cs |
배열 안의 데이터 정렬
오름차순/내림차순 정렬하는 방법
PHP에서 배열 내부의 인수들을 오름차순/내림차순으로 정렬하는 방법은 JavaScript와 약간 다른데 JavaScript에서는 sort 함수 하나만으로 사용하지만 PHP에서는 sort 함수와 rsort로 오름차순/내림차순 정렬이 나뉘어져 있다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
<?php
// 오름차순으로 배열을 정렬하는 방법
$number1 = array(2,3,6,5,4,1,7,9,8,0);
sort($number1);
print "<pre>";
print_r($number1);
print "</pre>";
// 내림차순으로 배열을 정렬하는 방법
$number2 = array(4,3,2,6,8,1,0,9,7,5);
rsort($number2);
print "<pre>";
print_r($number2);
print "</pre>";
?>
|
cs |
아래는 JavaScript에서 오름차순/내림차순 정렬을 하는 방법이다. 차이점을 확인해 본다.
1
2
3
4
5
6
7
8
9
10
|
<script>
// 자바스크립트에서는?
let array = [2,3,6,5,4,1,7,9,8,0];
// 오름차순 정렬
array.sort((a, b) => a - b);
// 내림차순 정렬
array.sort((a, b) => b - a);
</script>
|
cs |
PHP는 위의 방법 외에도 flag를 지정해 정렬하는 방법도 있다.
flag | 의미 |
SORT_REGULAR | 타입을 변환하지 않고 일반적인 방법으로 비교 |
SORT_NUMERIC | 데이터를 숫자로 취급하여 비교 |
SORT_STRING | 데이터를 문자열로 취급하여 비교 |
SORT_LOCALE_STRING | 데이터를 현재 로케일에 기반한 문자열로 취급하여 비교 |
SORT_NATURAL | natsort()와 같은 정렬 알고리즘을 이용하여 비교 |
SORT_FLAG_CASE | 데이터를 대소문자 구별 없이 비교(SORT_STRING, SORT_NATURAL, 비트 OR로 묶어 비교) |
sort($변수, flag); 또는 rsort($배열, flag);와 같이 실행할 수 있다. flag는 위의 표를 참고한다. 이것은 '숫자'를 정렬할 때 수치 정렬이나, 문자 정렬로 결과가 바뀔 수 있지만, 의도대로 정렬하기 위해 사용한다.
연관 배열 안의 데이터 정렬
오름차순/내림차순으로 데이터 또는 키를 정렬하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
<?php
// 연관 배열에서 오름차순으로 데이터 정렬하는 방법
$sales1 = array("TV2" => "1000","TV1" => "500","RADIO1" => "800");
assort($sales1);
print "<pre>";
print_r($sales1);
print "</pre>";
// 연관 배열에서 내림차순으로 데이터 정렬하는 방법
$sales2 = array("TV2" => "1000","TV1" => "500","RADIO1" => "800");
arsort($sales2);
print "<pre>";
print_r($sales2);
print "</pre>";
// 연관 배열에서 오름차순으로 키 정렬하는 방법
$sales3 = array("TV2" => "1000","TV1" => "500","RADIO1" => "800");
ksort($sales3);
print "<pre>";
print_r($sales3);
print "</pre>";
// 연관 배열에서 내림차순으로 키 정렬하는 방법
$sales4 = array("TV2" => "1000","TV1" => "500","RADIO1" => "800");
krsort($sales4);
print "<pre>";
print_r($sales4);
print "</pre>";
?>
|
cs |
배열에 데이터를 추가/제거
배열의 끝/앞에 데이터를 추가/제거 하는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
<?php
// 배열의 데이터 추가/제거하는 방법
// 배열의 끝에 데이터를 추가하는 방법
$data1 = array("사과","귤","감");
array_push($data1,"없음","수박");
print "<pre>";
print_r($data1);
print "</pre>";
// 배열의 끝에 데이터를 제거하는 방법
$data2 = array("사과","귤","감");
array_pop($data2);
print "<pre>";
print_r($data2);
print "</pre>";
// 배열의 앞에 데이터를 추가하는 방법
$data3 = array("사과","귤","감");
array_unshift($data3,"파파야","키위");
print "<pre>";
print_r($data3);
print "</pre>";
// 배열의 앞에 데이터를 제거하는 방법
$data4 = array("사과","귤","감");
array_shift($data4);
print "<pre>";
print_r($data4);
print "</pre>";
?>
|
cs |
배열의 결합과 잘라내기
배열끼리 결합/잘라내는 방법
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
<?php
// 배열의 결합과 잘라내는 방법
// 배열을 결합하는 방법
$pre_array1 = array("TV1" => "500","TV2" => "1000","RADIO1" => "800");
$new_array1 = array("TV1" => "2000","RADIO2" => "600");
$result1 = array_merge($pre_array1,$new_array1);
print "<pre>";
print_r($result1);
print "</pre>";
// 배열을 잘라내는 방법
$alpha = array("A","B","C","D","E");
print implode(',',$alpha).'<br>';
// A,B,C,D를 잘라냄
$result2 = array_slice($alpha,0,4);
print implode(',',$result2).'<br>';
// C를 잘라냄(시작위치가 음수면 배열의 끝에서부터 헤아림)
$result2 = array_slice($alpha,-3,1);
print implode(',',$result2).'<br>';
// D를 잘라냄(길이가 음수면 배열의 끝에서부터 '길이'만큼 앞으로 이동한 위치까지 잘라냄)
$result2 = array_slice($alpha,3,-1);
print implode(',',$result2).'<br>';
// C,D,E를 잘라냄('길이'가 없는 경우 시작위치부터 배열의 마지막까지 잘라냄)
$result2 = array_slice($alpha,2);
print implode(',',$result2).'<br>';
?>
|
cs |
기타 함수
데이터 반전하는 방법
1
2
3
4
5
6
7
8
9
|
<?php
// 데이터를 반전하는 방법
$origin = array("A","B","C","D","E");
$result3 = array_reverse($origin);
print "<pre>";
print_r($result3);
print "</pre>";
?>
|
cs |
배열 조작 함수 정리
함수 이름 | 함수 형태 | 함수 설명 |
list | list($변수1, 변수2, 변수3) = $배열; | 데이터를 변수에 할당 |
sort | sort($배열); | 오름차순 정렬 |
rsort | rsort($배열); | 내림차순 정렬 |
assort | assort($배열); | 데이터 오름차순 정렬 |
arsort | arsort($배열); | 데이터 내림차순 정렬 |
ksort | ksort($배열); | 키 오름차순 정렬 |
krsort | krsort($배열); | 키 내림차순 정렬 |
array_push | array_push($배열, "추가문자열"); / array_push($배열, $추가변수); | 배열 끝에 데이터 추가 |
array_pop | $변수 = array_pop($배열); | 배열 끝에 데이터 제거 |
array_unshift | array_unshift($배열, "추가문자열"); / array_unshift($배열, $추가변수); | 배열 앞에 데이터 추가 |
array_shift | $변수 = array_shift($배열); | 배열 앞에 데이터 제거 |
array_merge | $배열 = array_merge($기존배열, $추가배열); | 배열 결합 |
array_slice | $배열 = array_slice($기존배열, 시작위치, 길이); | 배열 잘라내기 |
array_reverse | $배열 = array_reverse($기존배열); | 데이터 반전 |
'프로그래밍 공부 > PHP' 카테고리의 다른 글
PHP - HTTP 헤더, 메일 송신 그리고 정규표현 (0) | 2020.01.28 |
---|---|
PHP - 날짜/시간 그리고 파일 조작 (0) | 2020.01.28 |
PHP - 문자열 조작 (0) | 2020.01.21 |
PHP - 인수, 반환 값 그리고 전역 변수 (0) | 2020.01.16 |
PHP - continue문/break문, reqire문/include문 그리고 사용자 정의 함수 (0) | 2020.01.16 |