happy cat image

everdevel

Make It Yours, 에버디벨

UI 변경

EEOS

에버디벨 책을 학습할 수 있는 클라우드 개발 환경을 제공합니다.
개발환경구축없이 태블릿에서도 개발할 수 있는 책의 예제와 프로젝트
오직 당신을 위한 스토리지, URL, DB, 무제한 트래픽
그리고 웹기반 개발환경을 제공합니다.

더 알아보기

웹애플리케이션을 만들고 싶은데 이것도 알아야 하고
저것도 알아야 한다는데 어떻게 해야할지 모르겠다면

웹프로그래밍 초보자를 넘어 프로그래밍을 처음 접하는 분들을 위해
에버디벨이 1년넘게 작업한

HTML5 + CSS3 + jQuery + MySQL + PHP

한권으로 배우는 웹코딩 시작하기

배열(Array)

지금까지는 한개의 변수에 한개의 값을 넣어서 진행해왔는데요,
많은 양의 변수를 한개의 변수에 담아야 하는 경우도 많이 생깁니다.
이럴때 배열에 담습니다.
데이터 베이스에서 어떠한 데이터들을 가져올때도 배열에 담아서 사용하는 경우도 많습니다.

즉, 배열에는 여러가지 값을 담을 수 있습니다.
기존에는 $a = "우리집"; 이렇게 선언을 했는데요. 배열을 이용하면 $a에 우리집도 넣을수 있고 "로봇","여자친구","회사" 이런정보들을 넣을 수 있습니다.
주소를 국가,도,시,동,세부주소 등으로 넣는것을 배열에 넣어야 한다면
$userAddress = array('japan','tokyo','shibuyaku','1293-21');
위와 같이 입력 하면 되는거죠.
만약, 배열 없다면
$userAddressNation = "Japan";
$userAddressDo = "Tokyo";
$userAddressKu = "shibuyaku";
$userAddressBunji = "1293-21";
위와 같이 입력 해야 겠죠? 그럼 이제 배열에 대해서 알아볼까요?

빈배열을 선언하려면 값을 array(); 입력합니다. 아래와 같이

 $myAddress = array();

또는 바로 값을 입력 하셔도 무관합니다.

 $userAddress = array('japan','tokyo','shibuyaku','1293-21');

배열 출력하기.

그럼 $userAddress의 값들을 출력해 볼까요.
배열 값을 보면 japan, tokyo, shibuyaku, 1293-21이라는 값들이 존재합니다 이 값들은 배열안에서 각자의 번지수를 갖고 있습니다.
왼쪽부터 0으로 시작합니다. japan을 출력하려면 번지가 왼쪽부터 0부터 시작하기 때문에 아래와 같이 출력문을 작성하면 japan이 출력됩니다.

 <?php
 $userAddress = array('japan','tokyo','shibuyaku','1293-21');
 echo $userAddress[0]; //배열변수에 [ 를 열어서 번지수 0 을 적고 다시 닫고 ]
 ?>

어때요? 간단하죠? 그럼 japan 이외의 shibuyaku를 출력하고 싶다면 번지수가 2번 이겠죠 0부터 시작하기 때문에요.

 <?php
 $userAddress = array('japan','tokyo','shibuyaku','1293-21');
 echo $userAddress[2]; //배열변수에 [ 를 열어서 번지수 0 을 적고 다시 닫고 ]
 ?>

for문을 활용하여 전체를 출력해볼수도 있습니다 어떻게 할까요?
번지수는 숫자이므로 번지수자리에 변수를 넣으면 됩니다. 한번 해볼까요?
배열안에 4개의 값이 있는데요. 배열의 수를 알려면 count()함수를 사용합니다. 매우 간단합니다.
count($userAddress)
이렇게 사용합니다 그러면 4개의 값이 있으므로 4를 출력해줍니다.

 <?php
 $userAddress = array('japan','tokyo','shibuyaku','1293-21');
 echo count($userAddress); //배열수를 출력 결과는 4
 ?>

그럼 for문을 이용해서 출력해 봅시다.

 <?php
 $userAddress = array('japan','tokyo','shibuyaku','1293-21');
 $userAddressCount = count($userAddress) - 1;
 echo $userAddressCount;

 for($i = 0; $i <= $userAddressCount; $i++){
  echo $userAddress[$i].'
'; } ?>

위의 소스에서 보면 count($userAddress) - 1; 에서 -1을 합니다.
그 이유는 배열의 길이는 4이기 때문에 for문에서 이용하기 위해서 -1을 해줍니다.
번지수는 0부터 시작하기 때문에 0, 1, 2, 3 이렇게 3까지 도달하려면 총 4개의 번지수를 출력하기 때문입니다.

그리고 for문에서 $userAddress[$i]를 하면 $i는 for문 안에서 0으로 지정하고 조건에 의해 3까지 움직이기 때문에 출력할때 차례대로
$userAddress[0]; $i = 0
$userAddress[1]; $i = 1
$userAddress[2]; $i = 2
$userAddress[3]; $i = 3
으로 진행되기 때문입니다.
즉 배열수는 4이므로 4이며 배열 번지수는 0부터 시작 하므로 -1을 사용하지 않으면 for문에서는 0부터 4까지 0,1,2,3,4 총 5번을 실행하므로 -1을 해줘서 0,1,2,3를 실행하는것입니다.

지금까지 for문에 -1을 사용하면서 불편함을 감수해서 배열의 내용을 출력했던 이유는 foreach를 설명하기 위함입니다.
위 소스대로 하면 번지수 까지 생각하면서 출력해야 하므로 귀찮죠?

그래서 한번에 출력하는 방법또한 있는데 그것이 바로 foreach이죠? 이걸 사용하면 정말 간단합니다.

<?php
    $userAddress = array('japan','tokyo','shibuyaku','1293-21');
    foreach($userAddress as $ua){
        echo $ua.'
'; } ?>

어때요? 간단하나요? foreach(배열 as 출력문에 사용할 변수 선언) 이렇게 하면 끝~ 그리고 foreach문 안에 echo 로 [출력문에 사용할 변수]를 작성하면 끝입니다. ^^;

배열에 번지수를 내 마음대로 지정하기.

배열에 번지수가 숫자로 0부터 해서 자동으로 붙습니다. 이것을 숫자로 표시하기 때문에 0이 무엇을 의미하는지 자료에 따라서 어려움이 있을수 있습니다.
이 번지수를 사용자가 직접 지정할 수 있습니다. 그럼 같이 해볼까요?
배열을 선언할때 $userAddress = array('japan','tokyo','shibuyaku','1293-21'); 이렇게 선언하지 않고 번지수도 같이 넣어 줍니다.
이렇게
$userAddress = array('nation'=>'japan', 'do'=>'tokyo', 'ku'=>'shibuyaku', 'bunji'=>'1293-21');
그리고 출력할때는 숫자대신 번지이름을 적어줍니다. 이렇게
$userAddress['nation']; 어때요? 쉽죠?

<?php
    $userAddress = array('nation'=>'japan', 'do'=>'tokyo', 'ku'=>'shibuyaku', 'bunji'=>'1293-21');
    echo $userAddress['nation'];
?>

foreach문으로 출력을 할려면 똑같습니다.

<?php
    $userAddress = array('nation'=>'japan', 'do'=>'tokyo', 'ku'=>'shibuyaku', 'bunji'=>'1293-21');
    foreach($userAddress as $ua){
        echo $ua.'
'; } ?>

그럼 이만~~ 다음 강좌로 갈까요?

강좌로 돌아가기