PHP Tutorial 배열 |
=====
생성
$products = array ( 'Tires', 'Oil', 'Spark Plugs' );
$numbers = range( 1, 10 );
$odds = range( 1, 10, 2 );
$letters = range( 'a', 'z' );
=====
배열 element 추가
배열은 길이 상관없이 추가하는 것도 가능하고, 정의없이 사용하는 것도 가능하다.
$products[4] = 'Fuses';
$products2[0] = 'Good Tires';
=====
foreach
foreach( $products as $current )
위와 같은 방식으로 foreach 를 쓰는 것이 general 하다.
=====
key-value array
$prices = array( 'Tires'=>100, 'oil'=>10, 'Spark Plugs'=>4 );
key-value array 는 for 문으로 돌 수 없고, foreach 나 each 를 이용한다.
=====
foreach
foreach( $prices as $key => $value )
echo $key.'='.$value.'<br />';
=====
each
while( $element = each( $prices ) ){
echo $element[ 'key' ];
echo '-';
echo $element[ 'value' ];
echo '<br />';
}
each 는 0( key ), 1 ( value ) index 로도 접근 가능하다.
each 를 사용하면 배열 포인터가 바뀐다. 따라서 배열을 여러번 사용하려면, reset() 함수를 사용하여 배열 포인터를 원래 위치로 돌리는 과정이 필요하다.
=====
list
list() 를 사용하면 더 괜찮은 구조체로 바꿀 수도 있다.
reset( $prices );
while( $list( $product, $price ) = each ( $prices ) ){
echo "$product - $price<br />";
}
=====
array 정렬
sort() 함수를 사용한다. 기본적으로 숫자와 문자에 대한 sort 를 제공한다.
두번째 인자로 SORT_REGULAR ( 기본값 ), SORT_NUMERIC, SORT_STRING 을 넘길 수 있다.
=====
key-value array 정렬
ksort() 와 asort() 를 사용할 수 있다.
ksort 는 key sort 이고, asort 는 value sort 이다.
기본적으로는 모두 오름차순이며, 반대로 하고 싶으면 함수명에 r 이 붙은 함수를 호출하면 된다.
=====
다차원 array 정렬
다차월 배열의 경우는 비교함수를 직접 정의해야 한다.
function compare( $x, $y ){
if ( $x[1] == $x[2] ) return 0;
else if ( $x[1] < $y[1] ) return -1;
else return 1;
}
usort( $products, 'compare' ); // user sort 라는 의미
=====
기타 정렬
rsort(), arsort(), krsort().
uasort(), uksort() 를 사용하면 key, value sort 방식도 정할 수 있다.
uasort() 와 uksort() 는 그 값들이 배열일 때 사용하기 좋다.
user sort 의 경우 r 을 붙인 이름이 통하지 않고, 비교함수에서의 return 값을 반대로 적어주면 된다.
====
배열 순서 섞기
shuffle()
OS 종류에 따라서, 그리고 php 버전에 따라 제대로 작동하지 않는 경우가 있다.
항상 같은 패턴으로 섞는 현상이 발생할 수 있기 떄문에, 꼭 확인 후 사용해야 한다.
array_reverse()
array 를 반대순서로 만들어준다.
=====
파일 path
file( "filePath" )
filePath 의 내용을 읽어들여 한줄 한줄을 배열로 만든다.
=====
Split 으로 배열 생성하기
array explode( string separator, string string [, int limit] )
delimiter 를 사용하여 targetStr 을 구분한다.
일반의 Split 함수와 같은 녀석이라 보면 된다.
====
배열 탐색 함수들
each( $array )
포인터를 하나씩 앞으로 이동시키며, 값을 return
current( $array )
현재 pointer 에 해당하는 element return.
reset( $array )
end( $array )
next( $array )
pos( $array )
prev( $array )
=====
배열 요소들에 함수 적용하기
bool array_walk( array arr, string func [,mixed userdata])
func 는 (value, key, userdata ) 의 순으로 parameter 를 받는다.
이 때 value 는 &$value 와 같이 reference 로 받을수도 있다.
=====
배열의 수 세기
count( $array )
sizeof( $array )
array_count_values( $array )
이 녀석은 해당 집합의 카디널리티를 구한다.
즉 중복된 element 에 대해 key(element value), value(count) 배열을 만든다.
=====
배열을 스칼라 변수로 변환
extract( array array [, int extract_type] [, string prefix] );
배열의 key value 값을 일반 변수로 뽑아낸다.
extract_type 은 변수를 뽑아낼 때 변수가 이미 존재하는 경우 어떻게 할지를 결정하며,
prefix 는 key 앞에 붙는 prefix 를 지정한다.
extract_Type 은 다음과 같은 녀석들이 올 수 있다.
EXTR_OVERWRITE : 덮어쓰기
EXTR_SKIP : 스킵
EXTR_PREFIX_SAME : $prefix_key 로 변수를 만든다.
EXTR_PREFIX_ALL : 만드는 모든 변수 앞에 prefix 를 붙인다.
EXTR_PREFIX_INVALID : 숫자변수명 등의 경우에 변수 이름에 prefix 를 붙인다.
EXTR_IF_EXISTS : 변수가 이미 존재할 떄에만 값을 추출. 즉 미리 만들어진 변수에만 채운다.
EXTR_PREFIX_IF_EXISTS : 변수가 존재할 때만 prefix 를 붙인다.
EXTR_REFS : 참조 변수로 추출
보통 EXTR_OVERWRITE 와 EXTR_PREFIX_ALL 이 가장 많이 쓰인다,
=====
메일 보내기
bool mail( string to, string subject, string message [, string additiona_headers [, string additional_parameter]]);
additional 부분은 header 내용이며 RFC822 에 따른다.
mail() 함수는 PHP 에 설치되어 있어야 사용 가능하다.
'프로그래밍 놀이터 > Web' 카테고리의 다른 글
[PHP] 코드 재활용과 함수 작성 Tutorial (0) | 2013.11.26 |
---|---|
내 Rest API 가 정말 Restful 한지 체크하기. (0) | 2013.11.22 |
[PHP] Tutorial, 객체 지향 (0) | 2013.11.15 |
[PHP Tutorial] 문자열 연산과 정규 표현식 (0) | 2013.11.11 |
Mini Device Lab - 여러가지 스마트 단말에서의 반응형 웹을 쉽게 확인하자 (0) | 2013.11.11 |
댓글