댓글 쓰기 권한이 없습니다. 로그인 하시겠습니까?
PHP
2015.10.28 10:58
php 배열 사용하기
조회 수 13940 댓글 0
출처 : https://opentutorials.org/course/779/4930 숫자 인덱스 배열대부분의 프로그래밍 언어에서 지원하는 방식이다.
php는 배열의 크기가 동적으로 늘어나는 방식이라서 방식 3과 같은 형태로도 배열을 생성할 수 있다. 배열에 접근하는 방식은 타 언어와 마찬가지로 $products[0], $products[1], $products[2] 처럼 접근한다. range()함수는 일정한 범위를 반환하는 함수이다. 첫 번째 인자에 시작 값, 두 번째 인자에 마지막 값을 입력하면 범위의 모든 값으로 배열을 반환한다. 세 번째 인자는 옵션인데 증가량을 표현할 수 있다. 만약 -1을 입력하면 감소하는 배열을 만들 수 있다.
연관 배열현대 프로그래밍 언어들은 연관 배열을 지원하는 경우도 흔히 볼 수 있다. 연관 배열은 인덱스를 문자열로 사용하여 그 값에 의미를 붙여 사용하는 방식이다.
배열에 접근하는 방법은 방식 2의 좌변처럼 접근하면 된다. 연관 배열은 숫자 인덱스가 없기 때문에 루프로 접근할 때 일반적인 방법으로는 for문으로 접근할 수 없다. 대신에 foreach문과 같은 방법을 사용한다.
루프로 접근하기foreach 문
foreach 문의 사용법은 위와 같다. 단, 연관 배열도 숫자 인덱스 배열 방식처럼 사용하면 값만 가져와 사용할 수도 있다.
each()와 list()여기서 $prices는 위의 연관 배열 부분에서 정의한 배열이라고 생각하면 이해가 쉽다.
$prices의 키가 $element['key']에 저장되고 값은 $element['value']에 저장된다. each() 함수는 현재 요소를 리턴하고 다음 요소를 현재 요소로 가리킨다.
list() 함수는 배열을 저장된 값만큼 분할한다. 키는 $product에, 값은 $price에 저장된다. 한 스크립트 내에서 배열을 두 번 이상 탐색해야 한다면, reset() 함수를 사용해야 한다. reset() 함수는 배열의 처음을 가리키도록 하는 함수이며 each()를 사용하면 배열을 가리키는 위치가 계속 바뀌게 되므로 나중에 처음부터 다시 탐색할 일이 생긴다면 reset()함수를 사용해야 한다. (참고) 배열 연산자는 1장 PHP 훑어보기(1) 의 연산자 부분에 설명되어 있다.
다차원 배열언뜻 보면 복잡하지만 역시 타 언어와 다른 점이 크게 없으므로 간략하게 코드만 보고 넘어간다.
3차원 이상의 배열도 같은 방식으로 array를 겹쳐주면 된다.(생략)
배열 정렬하기sort()
sort()는 알파벳이나 크기순으로 배열을 정렬한다. sort()의 두 번째 인자 값(문자열이나 숫자를 포함하고 있을 때 사용)
asort(), ksort()
asort()는 값(value)을 기준으로 배열을 정렬하고 ksort()는 키(key)를 기준으로 배열을 정렬한다.
역순으로 정렬역순 정렬은 아주 간단하다. sort앞에 r만 붙여주면 된다.
다차원 배열 정렬하기1차원 배열은 알파벳 순서라든가 크기 순으로 정렬할 수 있었지만 다차원 배열에서는 배열 자체를 비교해야 하기 때문에 좀 더 복잡해진다. 사용자 정의 정렬 usort()
위의 배열을 어떻게 정렬해야 할까? 여러 가지 방법이 있겠지만 물품의 설명을 알파벳 순서로 정렬한다거나 가격을 기준으로 정렬하는 방법 등을 생각해 볼 수 있다. 어떤 쪽이든 usort() 함수를 사용하기 위해서 우리가 직접 비교 함수를 만들어 주어야 한다. 여기서는 두 번째 데이터(설명)을 기준으로 알파벳 순으로 정렬해 보겠다.
배열 재배치shuffle()
shuffle() 이름에서 알 수 있듯이 무작위로 섞어주는 함수이다.
array_reverse()
array_reverse() 함수는 인자로 받은 배열을 정렬시키는 것이 아닌, 정렬된 새로운 배열을 반환하는 함수이다. 만약 굳이 새로운 배열을 만들 필요가 없는 경우라면 예제처럼 원래의 배열에 다시 대입해 사용하면 된다.
기타 배열 관련 함수(미완성)배열 탐색 함수each(), current(), reset(), end(), next(), pos(), prev() 배열의 각 요소에 함수 적용하기array_walk() 배열의 수 세기count(), sizeof(), array_count_values() 배열을 스칼라 변수로 변환extract() (참고) array_push($array, $value), array_pop($array), explode($seperator, $string, $limit) array_push : 배열에 요소 추가 array_pop : 배열의 마지막 요소를 제거하고 그 값을 리턴 explode : 문자열을 seperator로 자르고 각 요소를 배열로 리턴, limit은 리턴하는 수를 제한할때 옵션으로 사용 Dreamy의 코드 스크랩내가 모으고 내가 보는
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Designed by sketchbooks.co.kr / sketchbook5 board skin
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5
Sketchbook5, 스케치북5