홈으로 | 무료회원가입 | 아이디/비번찾기
추천음악방송
PHP 기초 다지기 - 데이터의 집합 : 배열
12년 전
PHP에서 배열이란 인덱스가 있는 배열과 해시 테이블 둘 다 가리킨다. 즉 두 종류의 배열이 따로 없다. 실제로 PHP 배열은 해시 테이블이지만 키 값을 지정하면 인덱스를 가진 배열로도 사용할 수 있다. 그러나 이것이 무슨 의미인지 모른다 하더라도 걱정할 것은 없다. 배열 변수에 값의 집합을 할당할 때는 array() 를 사용한다. 그리고 배열에 들어갈 값은 괄호()안에 표시하며 문자열일 경우 ""로 숫자일 경우 직접 사용하면 된다.



$colors = array("blue","indigo","yellow");




위의 예제는 3개의 문자열을 갖는 colors 배열을 만든 것이다. 또는 배열 $colors 에 들어갈 값을 모를 때에는 다음과 같이 빈 배열(empty array)로 할 수 있다.



$colors = array();



이 배열에 다른 값 추가하거나 배열 값을 대체하려면 []를 이용한다. 다음과 같이 한다.



$colors[] = "hunter green";



이렇게 하면 배열 $colors 은 네 개의 값을 갖게 된다. 종종 출력이나 계산을 위해 배열 안의 한 값만을 사용할 때가 있다. 이 때에는 원하는 값을 참조하는 키를 사용한다. 여기서는 아직 따로 키를 만들지 않았다. 따라서 PHP에서 자동으로 지정해 주는 숫자 키를 사용하게 된다. 예를 들면



첫 번째 아이템 ("blue")의 키는 0 이다.
두 번째 아이템의 키는 1,
세 번째는 2와 같은 식으로 나간다.



그리고 마지막 아이템의 키는 전체 아이템의 숫자보다 1이 작은 수다. 키가 0부터 시작하기 때문이다. 그러면 키 1을 사용하면 두 번째 색깔을 출력할 수 있다.



print $colors[1];



결과는 "indigo"를 출력하게 될 것이다. 인덱스 키의 이런 사용은 아이템을 특정 순서로 갖고 있을 때 유용하다. 그러나, 키 값은 실제로 아무 의미가 없으므로 제한적이다. 그렇다면 어떻게 두 번째 키를 만들 수 있을까? 두 번째 키는 보통 의미 있는 내용으로 한다. 예를 들어 이전의 색상이 자동차 각 부분의 색상 목록으로 한다고 하자. 그러면 다음과 같이 두 번째 키를 만들면 숫자만으로 이루어 진 인덱스보다 의미를 명확히 갖게 된다.




$colors = array("exterior"=>"blue",
"trim"=>"indigo",
"fabric"=>"yellow",
"dashboard"=>"hunter green");




확실히 이렇게 되면 이상한 색깔의 차가 된다. 여기서 각 아이템의 목록은 의미를 갖게 됐지만 그 순서를 잃었다. 하지만 아이템의 순서는 상관이 없으므로 무시해도 좋다. 이제 이 차의 특정 부위 색깔을 출력해 보자. 다음과 같이 하면 ‘fabric'의 색깔을 출력할 수 있다.




print $colors[fabric];



이 문장은 "yellow"를 출력한다.
일단 배열을 만들었으면 일반적으로 정렬하든, 각 값을 출력하든 배열을 조작한다. PHP는 배열 관련 함수가 많다. 대부분은 여기서 다룰 수 없다. 하지만 한 가지만 살펴보고 넘어가자. $colors 의 키 값과 해당하는 아이템을 출력하도록 해 주는 함수가 있다. 나중에 이런 식으로 출력할 일이 많이 생길 것이다. 예제를 살펴보자.




while (list($key,$value) = each($colors)) {
print "$key: $value<BR>";
}




아직 while 루프에 대해 살펴보지 않았지만 큰 상관이 없다. 위의 코드는 반복 문을 설정해 준다. each() 함수는 각 키와 그에 해당하는 값을 배열 형태로 list () 에 반환해 준다. 반환된 값은 list() 함수의 $key 와 $value 에 저장된다. Print문장은 목록에서 키 값과 해당 아이템을 출력한다. 물론 이를 갖고 다른 여러 가지 작업을 할 수 있다. 순환문이 돌 때 마다 while 문에서는 배열 내의 다음 아이템이 반환된다. 그리고 배열 내의 모든 값이 반환되었을 때 while 문이 끝난다.
위의 코드는 다음과 같은 결과를 브라우저로 나타낸다.



exterior: blue
trim: indigo
fabric: yellow
dashboard: hunter green




출력의 순서는 이전에 array() 문장에 할당한 순서다. 알파벳 순서로 출력하고 싶으면 PHP의 ksort() 함수를 사용해서 $colors 배열을 키 값으로 정렬시키면 된다.




ksort ($colors);
while (list($key,$value) = each($colors)) {
print "$key: $value<BR>";
}

추천추천 : 196 추천 목록
번호 제목
3,033
 PHP 정규식 정리
3,032
 PHP 정규식을 활용한 태그 및 특정 문자열 제거 및 추출 방법
3,031
 php 크롤링 또는 파싱 함수, 정규식 모음
3,030
 제이쿼리 기본 명령어
3,029
 웹페이지 가로 모드세로 모드 인식하기
3,028
 모바일 웹 화면 강제 회전(가로모드 고정)
3,027
 [HTML5]에서 frameset 대체 방법과 iframe 속성
3,026
 HTML <Audio> 사용법
3,025
 윈도우10 시스템파일 손상 (초간단 오류 복구방법!!)
3,024
 PHP 파일 존재 여부 파악하기(로컬 파일 존재 및 원격지 파일 존재)
3,023
 [CSS] 박스 세로 가운데 중앙 정렬 6가지
3,022
 CSS Layout 수평 & 수직 정렬
3,021
 여러 도메인들 간 쿠키 공유하기
3,020
 태그 사이에 있는 텍스트를 추출
3,019
 [JQuery] textbox focus on off일때 숫자 콤마 보여주기
3,018
 쿠키 생성,가져오기,삭제
3,017
 사용자 함수 모음
3,016
 마우스,키보드 제한 ( 오른쪽클릭,드래그,영역선택등..)
3,015
 [HTML5] <video> - DOM으로 제어하기
3,014
 HTML5 video 태그에서 영상 좌우반전
3,013
 PHP - 특정 태그 및 문자열 추출, 제거
3,012
 [PHP] define과 defined의 차이
3,011
 우클릭 완벽차단 스크립트
3,010
 iframe 높이 100% 맞추기
3,009
 curl 함수를 이용한 HTTP REFERER 변경
목록
뮤직트로트 부산광역시 부산진구 가야동 ㅣ 개인정보취급방침
Copyright (C) musictrot All rights reserved.