on
배열 관련 함수
배열 관련 함수
■배열의 생성
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