블로그 이미지
'무른모'란 부드럽다라는 뜻을 가진 '무르다'라는 말과 도구, 연장을 뜻하는 '연모'라는 순 우리말의 합성어로 소프트웨어를 말합니다. seanhigher

카테고리

분류 전체보기 (161)
Blog srart (16)
Dev Center (94)
Real Life (13)
Mac life (21)
Naver life (17)
Total659,292
Today1
Yesterday53

'다차원 배열'에 해당되는 글 2건

  1. 2010.07.17 배열의 배열
  2. 2010.05.03 Arrary 타입 변수 사용하기.
우리가 살고있는 세계를 3차원이 세계라고 한다. 이것은 가로, 세로, 높이의 세가지로 우리가 인지할 수 있는 모든것을 표현할 수 있음을 의미한다. 점으로만 이루어진것은 1차원, 선과 면으로 이루어진것은 2차원, 높이가 추가되어 비로소 3차원이 된다. 차원수가 높다는 것은 그만큼 표현할 수 있는 것이 많아지는 것을 의미한다. 배열도 마찬가지로 차원이 높아질 수록 표현할 수 있는 것이 더욱 많아지게 된다.


이차원 배열.
이미 알고 있는 일차원 배열의 선언은,

자료형[ ] 변수명 = new 자료형[배열의 크기];

와 같은 형태이다. 이것을 1차원의 일렬로 늘어서있는 선과 비교한다면, 자료가 몇번째에 서있는가를 표시하는 것이다. 선언된 배열을 사용하기 위해서 '변수명[인덱스]' 의 형태를 사용하게 되는데, 인덱스가 몇번째를 알려주는 것이다. 인덱스가 0이면 첫번째, 1이면 두번째로 들어있는 데이터를 사용하겠다는 것이다. 이처럼 1차 배열은 어쩔 수 없이 한줄로 늘어선 데이터밖에는 처리할 수 없는 것이다. 2차원으로 표현되는 면을 생각해 보자. 면에서는 가로의 위치와 세로의 위치로 좌표값을 표현할 수 있다. 행렬과 같은 의미이다. 여러 사람들이 모여서 열을 맞추어 서 있을때, 몇번째 줄 몇번째 사람이라고 표현할 수 있듯이, 행과 열의 두가지를 표현할 수 있다면 이차원의 공간을 표현하는 것이 가능하다. 더 나아가서 이해를 해보면, 몇번째 줄에서 알 수 있듯이 1차로 표현할 수 있는 줄이 여러개로 늘어난것이 2차로 공간의 확장이 이루어지는 것이다. 이것은 배열에서 2차원 배열이라고 하여 다음과 같이 선언하고 사용할 수 있다.

자료형[ ][ ] 변수명 = new 자료형[행의 크기][열의 크기];
변수명[행 인덱스][열 인덱스];

매우 간단하다. 단지 배열안에 배열을 추가한 것 뿐이다.


다차원 배열.
이러한 형식으로 배열의 차원을 2차원 3차원으로 확장하는 것이 가능하다. 4차원 배열도 가능하지만, 그것을 개발의 입장에서 오히려 이해를 더욱 힘들게 만드므로 3차원 이상의 배열의 사용은 그리 권장하는 방법이 아니다. 다차원 배열을 선언하고 사용하기 위해서는 해당 차원수 만큼 인덱스를 늘려서 사용하면 된다. 3차원은 '[ ][ ][ ]' , 4차원은 '[ ][ ][ ][ ]' 와 같은 형식으로 사용이 가능하다.

'Dev Center > JAVA start' 카테고리의 다른 글

지속가능한 힘. while, do while  (0) 2010.07.19
이것 아니면 저것. if ~ else 문  (0) 2010.07.18
배열의 배열  (0) 2010.07.17
getter 와 setter.  (1) 2010.07.16
배열만 알아도 한단계 업그레이드!  (0) 2010.07.15
클래스를 만들고 사용하기.  (2) 2010.07.13
Posted by seanhigher

댓글을 달아 주세요

배열은 데이터를 저장하는데 있어서 매우 유용한 방법중의 하나이다. 데이터의 순서와 인덱스를 이용하여 같은 종류나, 묶어두어야 할 자료들을 손쉽게 구분이 가능하게 할 수 있다. 변수 형태의 구분이 없는 PHP 에서는 더욱더 유연하고 다양하게 배열의 변수를 사용할 수 있다.



Array 타입의 변수.
배열은 키(key)와 값(value)의 쌍으로 구성되어 있다. 배열을 구성하는 키는 정수형과 문자열로 표현이 가능하다. 특정한 문자열을 지정하지 않을 경우 '0' 부터 차례대로 키값을 가지게 되는데 이를 인덱싱 된 배열이라고 부른다. 배열의 키가 문자열의 형태로 된 첨자를 가지고 있다면 연관 배열이라고 한다.

<?
  $people[0] = "Betty";          // 인덱싱 배열(첫번째 원소)
  $people[1] = "Jane";          // 인덱싱 배열(두번재 원소)
  $people[2] = "Steven";       // 인덱싱 배열(세번째 원소)

  $people['man'] = "Charley";          // 연관 배열(key = 'man')
  $people['woman'] = "Grace";        // 연관 배열(key = 'woman')
?>

배열은 일반적인 변수형과는 근본이 다르다. 정수형, 실수형, 문자형과 같은 변수형은 기본적인 타입에 속하지만, 배열은 이 기본 형태의 데이터를 조금더 발전시킨 형태라고 할 수 있다. 또한, 키와 값이라는 쌍으로 이루어져 있기 때문에 일반적인 변수의 사용과는 조금은 다른 형태를 취하게 된다.

<?
  $subject = array(0 => "국어", 1 => "수학", 2 => "영어", 3 => "사회");
  $score = array('korean' => '89', 'math' => '93', 'society' => '87');
  $people = array('Betty', 'Jane', 'Steven');
?>

배열변수 '$subject' 같이 키가 숫자로 되어 있는 인덱싱 배열의 경우는 $subject[0], $subject[1] 과 같이 숫자의 첨자로 '국어', '수학' 과 같은 변수값에 접근 할 수 있다. '$score' 는 키가 문자열로 이루어져있는 연관배열은 'korean', 'math' 와 같이 문자열로 이루어진 첨자를 사용할경우엔 $score['korean'], $score['math'] 와 같은 방법으로 그 값인 89, 93 에 접근하여 사용할 수 있다. 만일 '$people' 와 같이 키를 선언하지 않은채로 데이터값만 갖는 경우에는 자동적으로 '0' 부터 차례대로 숫자키가 부여된 인덱싱 배열이 된다. 'Betty' 의 값에 접근하고자 한다면 $people['0']이 되며, 'Jane'에 접근하려고 한다면 $people['1'] 을 통해서 접근이 가능하게 된다.


배열을 사용하는 또 하나의 방법.
배열을 사용하게 될 경우에는 배열을 선언하면서, 그 값을 입력해 주어야 한다. 하지만, 그 값이 완전히 준비되어 있지 않을 경우에는 배열의 각 원소별로 값을 정해줄 수 있다.

<?
  $people[] = "Betty";
  $people[] = "Jane";
  $people[] = "Steven";
?>



배열의 배열, 다차원 배열
배열을 더 유용하게 만드는 것중 하나는 배열을 중첩하여 사용이 가능하다는 것이다. 물론 너무 많은 중첩을 하게 된다면 PHP를 해석하는 파서에 무리가 가겠지만, 적절한 중첩을 이용한 배열은 변수의 사용가능성을 수십, 수백배 배가 시켜준다. 배열을 중첩한 다차원 배열의 사용법은 일반적인 배열의 사용법과 같다. 단지, 배열의 값에 일반적인 값 대신 배열의 값이 들어간다는 것이 다를 뿐이다.

<?
  $people = array(
                 array('name' => 'Betty', 'sex' => 'female', 'age' => '24'),
                 array('name' => 'Jane', 'sex' => 'female', 'age' => '29'),
                 array('name' => 'Steven', 'sex' => 'male', 'age' => '28')
                 );
?>


위의 배열에서 steven 의 나이인 28 의 값에 접근을 하고 싶다면 $people[2]['age'] 와 같이 사용할 수 있다. 차수가 높아질수록 첨자가 하나씩 늘어나게 된다.

Posted by seanhigher

댓글을 달아 주세요

최근에 달린 댓글

글 보관함