메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

IT/모바일

PHP의 배열 - 1부

한빛미디어

|

2001-06-26

|

by HANBIT

9,863

by 존 코그셸(John Coggeshall), 역 한빛 리포터 1기 이호재 이번 기사에서는 기본적인 PHP 배열(array)에 대해 살펴 볼 것이다. 배열(array)이란 무엇인가? PHP에서 배열은 프로그래머가 어느 한 값을 직접 다른 값과 연결하거나, 데이터 집합을 테이블 같은 리스트 형식으로 결합하는 변수 형식이다. 배열은 여러 방식으로 사용되어 데이터를 효율적이고 빠르게 저장하고 결합시키며, 어떤 프로그래밍 언어에서도 사용 가능한 유용한 데이터 형식이다. PHP를 이용하여 좋아하는 웹사이트 주소를 저장할 방법을 찾는다고 하자. 가장 신통하지 않은 방법은 다음과 같을 것이다.

<?php
  $site1 = "http://www.onlamp.com";
  $site2 = "http://www.oreilly.com";
  $site3 = "http://www.coggeshall.org";
?>
결과는 나타나겠지만, 전혀 효율적이지 않다. 이때 배열을 사용하면 된다. 배열 변수의 문법은 PHP의 다른 변수 문법과 거의 동일하다. 변수 이름에서도 동일한 법칙을 따르고, 다른 변수처럼 참조될 수도 있다. 하지만 배열 데이터를 접근하는 방법과 배열 변수를 생성하는 방법은 확연히 다르다. 배열 변수를 생성할 때 두 가지 방법으로 선언한다. 첫째는 배열에 저장될 데이터가 정적 데이터일 경우에, 둘째는 스크립트 실행시에 데이터를 읽거나 생성할 때 사용한다. 어떤 방법이 적합할지는 개발자에게 달려 있다. 이제 위 예제의 데이터를 배열 형식으로 변경해 보자. array() 함수를 사용하여 정적 배열을 생성하기 Array()는 PHP에서 데이터로 배열을 생성하는 함수 중 하나로, 사용자의 입력값을 받아 이를 포함한 배열 변수를 리턴하는 PHP문이다. 일반적인 형태는 바뀌지 않겠지만, 이 문장에는 눈여겨 봐야 할 내용이 많다. 우선 array()의 일반적 문법을 살펴보자.

Array array([index]=>[value], [index2]=>[value], ...);
여기에서 index는 정수나 PHP의 모든 데이터 형식 또는 변수를 나타내는 값이다. 지금은 array()문의 매우 제한적인 사용법만을 보여주고 있다. 다음 기사에서 복잡한 데이터를 저장하기 위해 array()문의 새롭고 좀더 유용한 사용법을 보여줄 것이다. 배열은 이에 넘겨진 데이터의 크기에 이론적으로는 제한이 없다. 데이터의 크기는 스크립트를 실행하는 서버의 저장매체 용량에 의해 제한된다. 지금까지 array()문이 무엇인지 살펴보았으니, 배열을 이용해 앞의 예제를 어떻게 저장하는지 살펴보자.

<?php
  $site3 = "http://www.coggeshall.org";

  $mysites = array(0=>"http://www.onlamp.com",
                   1=>"http://www.oreilly.com",
                   2=>$site3);
?>
이 예제의 결과는 앞 예제의 모든 웹사이트 주소가 색인된 리스트가 있는 $mysites 변수 하나이다. 배열의 세째 항목(index #2)이 $site3라는 변수로부터 값을 가져왔다. 그러므로 index #2에 저장된 실제 값은 http://wwww.coggeshall.org이다. 지금까지 우리는 기본적인 배열을 생성하는 법에 대해 알아보았다. 그러면 배열의 값에는 어떻게 접근하는지 살펴 보자. 배열 데이터에 접근하기 지금까지 하나의 배열을 생성했다. 이제부터는 이 배열에서 데이터를 가져오는 방법에 대해 논할 것이다. 배열에서는 배열 변수를 참조한 다음, 특정 값의 특정 인덱스를 제공해야 이 값을 가져올 수 있다. 배열의 세째 값(index #2)을 가져와서 브라우저에 출력하려면 다음과 같이 하면 된다.

	<?php echo $mysites[2]; ?>
이는 배열을 처리할 때 배열 뒤에 "["와 "]"를 덧붙이고 받으려는 값의 인덱스를 참조했다는 것을 제외하고는, 다른 일반 변수를 브라우저에 출력하는 것과 거의 똑같다. 2를 0이나 1로 바꾸면 배열의 처음 두 값에 쉽게 접근할 수 있다. 동적으로 배열 생성하기 스크립트를 실행할 때 배열에 저장될 데이터를 모르면 배열을 동적으로 생성해야 하는데, 이는 array()문을 이용하는 것보다 비효율적이고 어렵다. 대신 PHP는 필자의 생각으로는 비공식적이긴 하지만, 배열을 생성하는 여러 수단을 제공한다. 첫째 방법은 PHP에서 다른 일반 변수에 값을 할당하는 것과 매우 유사하며, 앞에서 살펴 본 배열을 참조하는 문법과도 호환된다. 이미 만든 웹사이트를 저장하는 배열에 새로운 값을 넣고 싶다고 하자. 이 새로운 값은 3이라는 색인이 있으며, "http://www.php.net"이라는 값을 가지려고 한다. 이때는 이미 만들어진 배열에 다음과 같은 방법으로 값을 추가하면 된다.

<?php
  $mysites[4] = "http://www.php.net";
?>
이제 $mysites 변수는 이전에 저장된 3개의 데이터와 방금 추가한 4번째 값을 가지고 있다. 이러한 할당법으로 쉽게 새로운 데이터를 추가하거나 기존의 데이터를 수정할 수 있다. 게다가 실제 색인값을 뺄 수도 있는데, 이 경우 PHP는 다음 예제처럼 자동으로 뒤에 나오는 순차적인 색인값을 가정한다.

<?php
  $mysites[] = "http://www.zend.com";
?>
위의 예는 자동으로 index $5에 저장된다. 결론 지금까지는 PHP 배열의 강력함만을 살펴 보았지만, 이로써 PHP스크립트를 개발할 때 여러분을 도와줄 매우 유용하고 강력한 툴을 배운 것이다. 다음 기사에서는 고급 기술인 배열의 값을 빠르고 쉽게 이용할 수 있는 새로운 제어 구조와 해시(hash)라 불리는 연관 배열(associative arrays)에 대해 알아볼 것이다. 다음 기사를 기다려 주기 바란다.
존 코그셸(John Coggeshall)은 10년 이상 프리랜서로 웹 컨설턴트와 그래픽 디자인 일을 해 왔으며, PHP를 사용한 지는 5년 남짓 되었다. 이호재님은 한빛 리포터 1기로 활동 중입니다. 카드코리아 개발 실장으로 근무한 경험이 있으며, 지금은 서울대 지구환경시스템공학부(컴퓨터 공학)에 다니고 있습니다. 컴퓨터에 관련된 모든 분야에 두루 관심이 많으며, 요즈음엔 파이썬, MPI, PHP 등에 관심이 많다고 합니다.
TAG :

이전 글 : P2P에 대한 반발

다음 글 : MS vs 오픈 소스

댓글 입력
자료실

최근 본 책0