즉, 배열에는 여러가지 값을 담을 수 있습니다.
기존에는 $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].'<br />'; } ?>
위의 소스에서 보면 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.'
'; } ?>
그럼 이만~~ 다음 강좌로 갈까요?
봐주셔서 감사합니다. 문의 또는 잘못된 설명은 아래의 댓글에 부탁드립니다.
당신의 작은 누름이 저에게는 큰 희망이 됩니다.
댓글 0개
정렬기준