배열 관련 함수

배열 관련 함수

■배열의 생성

PHP에서 배열을 만들기 위해서 array() 함수를 사용한다.

$arr = array(1, 2, 3, 4, 5);

■배열 요소의 개수

count(), sizeof() : 배열에 저장된 요소의 개수를 반환한다.

array_count_values() : 전달받은 배열의 요소를 모두 확인 후, 해당 값이 몇 번 등장하는지 확인한다.

$arr = array(1, 5, 7, 3, 3, 1, 2); echo "배열 요소의 수는 ".count($arr)."입니다."; // 7 echo "배열 요소의 수는 ".sizeof($arr)."입니다."; // 7 $acv = array_count_values($arr); // 1 : 2번, 5 : 1번, 7 : 1번, 3 : 2번, 2 : 1번

■배열의 탐색

PHP 배열에는 현재 선택된 요소가 어느 요소인지를 가리키는 포인터가 별도로 존재한다. 이 내부 포인터를 배열 포인터라 하며, 배열이 생성되면 이 포인터는 자동으로 배열의 첫 요소를 가리킨다.

current(), pos() : 배열 포인터가 현재 가리키는 요소를 반환한다.

next() : 배열 포인터를 1만큼 이동시키고, 다음 요소를 반환한다.

prev() : 배열 포인터를 -1만큼 이동시키고, 이전 요소를 반환한다.

each() : 배열 포인터가 현재 가리키는 요소의 키와 값을 연관 배열로 반환하고, 배열 포인터를 1만큼 이동시킨다.

reset() : 배열 포인터가 첫 번째 요소를 가리키도록 하고, 첫 번째 요소를 반환한다.

end() : 배열 포인터가 마지막 요소를 가리키고, 마지막 요소를 반환한다.

$arr = array(2, 3, 7, 4, 6); $element = current($arr); // 배열의 첫 번째 요소를 가리킴. while($element) { // 배열의 마지막 요소까지 echo $element; // 해당 요소의 값을 출력하고, $element = next($arr); // 다음 요소를 가리킨 후에 해당 요소를 반환함. } // 2, 3, 7, 4, 6 $element = end($arr); // 배열의 마지막 요소를 가리킴. while($element) { // 배열의 첫 번째 요소까지 echo $element; // 해당 요소의 값을 출력하고, $element = prev($arr); // 이전 요소를 가리킨 후에 해당 요소를 반환함. } // 6, 4, 7, 3, 2

■배열의 정렬

sort() : 배열 요소들을 정렬 기준에 맞게 정렬한다.(rsort() : 내림차순)

대소문자를 구별하며, 대문자가 소문자보다 앞쪽에 정렬된다. 배열 요소 정렬에 성공하면 true, 실패하면 false를 반환한다.

$arr = array(15, 2, 1, 21, 121); sort($arr); // 배열 정렬 -> 1, 2, 15, 21, 121 sort($arr, SORT_NUMERIC); // 배열 요소를 숫자로 비교 -> 1, 2, 15, 21, 121 sort($arr, SORT_STRING); // 배열 요소를 문자열로 비교 -> 1, 121, 15, 2, 21

■연관 배열의 정렬

연관 배열은 인덱스를 숫자가 아닌 문자열을 사용하므로, 키와 요소의 값으로 따로 정렬할 수 있다.

ksort() : 각 요소의 키를 기준으로 오름차순으로 정렬한다.(krsort() : 내림차순)

asort() : 각 요소의 값을 기준으로 오름차순으로 정렬한다.(arsort() : 내림차순)

$arr = array("apple" => 1000, "banana" => 2000, "orange" => 1500); asort($arr); // 요소의 값을 기준으로 배열 정렬 -> apple, orange, banana ksort($arr); // 키값을 기준으로 배열 정렬 -> apple, banana, orange

이 외에도

array_multisort() : 여러 배열이나 다차원 배열의 배열 요소를 정렬한다.

natcasesort() : 대소문자를 구분하지 않는 영문 숫자 순의 알고리즘으로 배열 요소를 정렬한다.

natsort() : 영문숫자 순으로 배열 요소를 정렬한다.

usort() : 사용자가 정의한 비교 함수를 사용하여, 배열 요소를 정렬한다.

uksort() : 사용자가 정의한 비교 함수를 사용하여, 배열 요소의 키를 기준으로 정렬한다.

uasort() : 사용자가 정의한 비교 함수를 사용하여, 배열 요소의 값을 기준으로 정렬한다.

■배열 요소의 재배치

shuffle() : 배열 요소를 섞은 뒤에 랜덤으로 재배치한다.

$arr = array(1, 2, 3, 4, 5); shuffle($arr); // 배열 요소를 무작위로 재배치함.

array_reverse() : 전달받은 배열의 순서를 역순으로 변경한 새로운 배열을 반환한다.(비파괴적으로 원본에 영향 X)

$arr_01 = array(1, 2, 3, 4, 5); $arr_02 = array_reverse($arr_01); // 배열 요소를 역순으로 바꾼 새로운 배열을 반환함. for($i = 0; $i < count($arr_02); $i++){ // 새로 생성된 배열인 $arr_02의 모든 요소를 출력함. echo $arr_02[$i].", "; // 5, 4, 3, 2, 1 } for($i = 0; $i < count($arr_01); $i++){ // 원본 배열인 $arr_01의 모든 요소를 출력함. echo $arr_01[$i].", "; // 1, 2, 3, 4, 5 }

from http://woong971.tistory.com/15 by ccl(A) rewrite - 2021-10-21 22:00:53