Programming Language/PHP

[PHP] 배열의 정의 및 explode, implode, define함수

재테크하는 개발자 2019. 9. 11. 15:23

 

 

● 배열

: 배열은 여러개의 값을 다룰때 매우 유용합니다.

우선, 배열을 사용하면 여러개의값을 하나의 그룹처럼 다룰수있습니다.

배열은 대괄호 안에 값만 들어있는 배열과 Key(키)와 Value(값)이 짝으로 이루는 연관 배열이 있습니다. 아래 예재들을 통해 확인해보겠습니다.

 

 

 

 

 

* 인덱스 배열

$team이라는 변수에 [] (대괄호)로 String값을 넣어줍니다.

위 배열 정의에서 설명했듯이 이 예제는 인덱스배열이라 하며, 정렬 순서인 인덱스 번호로 값에 접근합니다.

배열은 0인자(Key)부터 시작합니다.

즉, $team[0] = "김철수" / $team[1] = "김민희" / $team[2] = "박민수" 입니다.

0인자(키)에 "김철수"(값)이 들어있습니다.

이제 for문을 통해 $team배열안에 있는 값 3개중에 [0]인자 값을 출력해줍니다.

그러면 당연히 김철수가 출력되고, 다음 i++해줘서 [1]인자 값인 김민희가 출력됩니다.

( + count함수는 PHP 내장함수로써 배열안에있는 인자의 갯수를 세서 리턴해줍니다. 즉, 여기서는 3과 같습니다. )

 

 

 

 

 

array로 배열은 만들수있습니다. 위처럼 array()안에 해당 값을 넣어주면 인덱스 순서대로 저장됩니다.

배열은 print_r() 또는 var_dump()를 사용해 출력할수있습니다.

echo()로는 배열을 출력할수없습니다. 다만, 반복문을 통해 처음 예제처럼 하나씩 출력이 가능합니다.

 

 

 

 

 

 

인덱스 번호를 지정해 값을 대입할때 이미 지정한 값이 있으면 값이 갱신되지만,

존재하지 않는 인덱스 번호(Key)를 지정하면 그 인덱스 번호에

값이 대입됩니다. 그 때는 인덱스 번호가 연속된 번호가 아닌 비어있는 번호가 됩니다.

0인덱스에 "빨강"을 넣어주고, 3인덱스에 "보라"값이 들어갑니다. 그러면 1,2 인덱스는 값이 없습니다.

인덱스 번호를 지정해서 값을 넣었기에 해당 인덱스번호에만 값이 들어갑니다.

인덱스[7]에 "초록"값이 들어가고, 그다음 인덱스 번호를 입력해주지않으면 자동으로 7다음 숫자인 8인덱스에 "검정"이 대입됩니다.

 

 

 


 

 

* 연관 배열

 

이번에는 Key가 숫자가 아닌 String으로 들어가는 예제입니다. (연관배열)

id라는 키에 R12라는 값을 대입했고, size라는 키에 XL라는 값을 대입했습니다.

printf_r로 출력해주면 id,size,price가 순서대로 출력됩니다.

 

 

 

 

 

배열을 문자열로 만드는 implode() 예제 입니다.

우선, $data에 3개의 값을 배열로 선언해주고, implode함수 첫번쨰 파라미터로 기준값을 넣어줍니다.

"씨, "라는 기준으로 배열 각각을 연결해서 문자열로 만들어줍니다. 최종적으로 마지막에는 "씨"를 붙여주면 됩니다.

 

 

 

 

문자열을 배열로 만드는 exlode() 예제입니다.

$data변수에 문자열을 넣어주고, $delimiter 변수에 기준값을 넣어줍니다.

explode내장함수를 통해 첫번쨰 파라미터로 기준값을 넣어주고, 두번째 파라미터로 해당 배열로 만들 문자열을 넣어줍니다.

 

 

 

 

 

배열은 define()을 사용해 상수로 사용할 수 있습니다.

RANK라는 배열에 인덱스번호1인 "중"이라는 값이 저장되어있습니다.

echo를 통해 출력해주면 값이 출력됩니다.

(PHP 7에서 배열의 상수가 추가되었습니다.)