본문 바로가기

PHP 교실

8. PHP 배열

8. PHP언어의 배열 표시법에 대하여 알아 봅시다.

 

배열형은 대괄호나 , array()함수를 사용하여 표기합니다.

 

 

1. 대괄호 표기법


 

형식) $배열명[key] = value;


 

key는 정수형 타입이나 문자열 타입이어야 합니다

 

다음 예제에서는 $test 라는 배열명을 사용하여 배열을 지정하였습니다. 배열의 키는 문자와 숫자를 사용하였습니다. 키가 문자일 때는 이중따옴표(")나 따옴표(')로 문자를 둘러 싸서 표기합니다.

 

 

test8-1-1.php

 

<? 

$test["Name"] = "홍길동";     //key는 문자열타입
$test["Year"] = 19;
$test[0] = "제주도";             //key는 정수형타입
$test[3] = "울릉도";

echo "
내 이름은 {$test['Name']}입니다.<br>
내 나이는 {$test['Year']}세입니다.<br>
가고싶은 곳은 $test[0]입니다.<br>
"; 

?> 

 

 

<AcroEdit로 작성하기>

 

 

<브라우저로 출력하기>

 

 

 

 

key가 생략되면 key는 정수형으로 인식되어 이전에 사용된 키 중 가장 큰 정수형 key에 +1 하여 key가 자동 지정됩니다. 그러나 이전에 사용된 정수형 key가 없으면 key는 0으로 자동 지정됩니다. 

 

test8-1-2.php

<?

$test["Name"] = "홍길동";
$test[] = "제주도";                   // key는 0으로 할당됨
$test[] = "울릉도";                   // key는 1로 할당됨
$test[5] = "거제도";
$test[] = "한산도";    

 

 echo "

$test{['Name']}<br>
$test[0]<br>
$test[1]<br>
$test[5]<br>
$test[6]<br>";

?> 

 

 

<AcroEdit로 작성하기>

 

 

<브라우저로 출력하기>

 

주의) key를 문자열을 사용할 때, $test[Name] = "홍길동" 처럼 Name이라는 key 문자열을 따옴표로 둘러싸지 않고 사용해도 에러 없이 돌아가지만, 나중에 Name이라는 문자열이 상수로 지정되어 버리면 Name이라는 문자열이 상수로 지정된 문자열로 치환되어 다른 값을 지정하게 될 수 있습니다. 즉 해킹의 소지를 주게 되니 문자열을 키로 사용할 때는 따옴표나 이중따옴표로 둘러 싸는 것이 좋습니다.

 

 

 

2. array() 함수로 표기하기

 

 형식) $배열명 = array(key1=>value1, key2=>value2, . . . )

 

test8-2-1.php

<?

$test = array('name'=>'홍길동', 'year'=>19, 1=>'제주도', 2=>'울릉도');

echo "
{$test['name']} <br>
{$test['year']} <br>
$test[1] <br>
$test[2] <br>

";

?> 

 

 

test8-2-1 출력 결과

홍길동

19

제주도

울릉도

 

 

다음 배열을 출력하려면 key는 어떻게 할당될까요? echo를 사용하여 출력문을 완성하여 봅시다.

 

test8-2-2.php

<?
$person = array("홍길동",3=>"이순신","강감찬");

echo "

 

 

"; 

 

 "홍길동"은 $person[0] 에 할당됩니다. 배열 할당의 처음 시작이기 때문입니다.

"강감찬"은 $person[4] 에 할당됩니다. 앞에서 사욛된 마지막 key번호가 3이기 때문입니다.

 

 

 

3. 배열의 출력

 

list 명령어 사용하여 출력하기 

 

test8-3-1.php

<?
$some = array(

           'color'  => "red",

           'taste'  => "sweet",

           'shape' => "round",

           'name'  => "apple"

           );

 

reset($some);                     

while (list($key,$value) = each($some)) 

{
    print "$key: $value<br>";
}

?>

 

reset() 명령어는 배열을 처음부터 사용하기 위해서 배열의 포인터를 첫번째 원소를 가르키도록 합니다.

 

test8-3-1.php 결과

color: red
taste: sweet
shape: round

name: apple

 

 

 collection 명령어 이용하기

 

test8-3-2.php

<?

$colors = array('red', 'blue', 'green', 'yellow');


foreach ($colors as $temp) {
    echo "Do you like $temp? <br>";
}

?>

 

 test8-3-2.php 출력결과

Do you like red?
Do you like blue?
Do you like green?

Do you like yellow?

 

 

 

 

4. 배열의 삭제

 

배열의 삭제는 unset() 명령문을 사용하여 삭제합니다.

 

 

 test8-4-1.php

<?

$colors = array('red', 'blue', 'green', 'yellow');

 

unset($colors[2]);

foreach ($colors as $temp) {
    echo "Do you like $temp? <br>";
}

 

unset($colors);

?>

 

배열 요소는 $colors[0] = 'red' 부터 시작되었으므로,

unset($colors[2]) 는 배열요소 3번째인 $colors[2] = 'green' 을 삭제합니다.

unset($colors) 는 $colors 라는 배열전체를 삭제해 버립니다.

 

test8-4-1.php 출력결과

Do you like red?
Do you like blue?

Do you like yellow?

 

 

 

 

 

 

 

'PHP 교실' 카테고리의 다른 글

10. php 상수 지정하기  (0) 2017.05.13
9. PHP 클래스, 객체  (0) 2017.05.08
7. PHP 문자열, 이스케이프 문자  (0) 2017.01.09
6. PHP 정수, 실수  (0) 2017.01.06
5. PHP 변수  (0) 2016.12.24