PHP의 array_slice() 함수는 배열에서 원하는 부분만 잘라내어 새로운 배열로 반환하는 함수입니다. 배열의 특정 위치부터 지정한 길이만큼의 요소를 추출할 때 유용하게 사용됩니다.
구문
array_slice(arr, begin, length, preserve)
매개변수 설명
arr − 대상이 되는 배열입니다.
begin − 배열 자르기를 시작할 위치(오프셋)를 나타냅니다. 음수를 사용하면 배열의 끝에서부터 계산됩니다. 예를 들어 -1은 마지막 요소부터, -2는 뒤에서 두 번째 요소부터 시작한다는 의미입니다.
length − 반환될 배열의 길이를 지정합니다. 음수 값을 입력하면 배열 끝에서 해당 개수만큼 떨어진 지점에서 자르기가 중단됩니다.
preserve − 원래 배열의 키(key)를 유지할지 여부를 결정합니다. TRUE면 기존 키를 보존하고, FALSE면 키를 새로 재정렬합니다.
반환값
array_slice() 함수는 배열에서 선택된 부분을 담은 새로운 배열을 반환합니다.
사용 예제 1 – preserve 옵션 사용하기
다음은 세 번째 요소부터 3개의 요소를 추출하면서 키를 유지하는 예제입니다.
<?php
$arr = array("laptop","mobile","tablet","pendrive","headphone");
print_r(array_slice($arr,2,3, true));
?>출력 결과
Array ( [2] => tablet [3] => pendrive [4] => headphone )
네 번째 인자가 true이므로 원래 배열의 인덱스(2, 3, 4)가 그대로 유지된 것을 확인할 수 있습니다.
사용 예제 2 – preserve 옵션 미사용
이번에는 두 번째 요소부터 3개를 추출하되, 키를 유지하지 않는 예제입니다.
<?php
$arr = array("electronics","accessories","shoes","toys","bags");
print_r(array_slice($arr,1,3, false));
?>출력 결과
Array ( [0] => accessories [1] => shoes [2] => toys )
false를 지정했기 때문에 인덱스가 0부터 다시 정렬되어 반환됩니다.
사용 예제 3 – 음수 begin 값 활용
음수 오프셋을 사용하면 배열의 끝에서부터 요소를 추출할 수 있습니다.
<?php
$arr = array("one","two","three","four");
print_r(array_slice($arr,-2));
?>출력 결과
Array ( [0] => three [1] => four )
-2를 지정했으므로 뒤에서 두 번째 요소인 "three"부터 마지막 요소까지 반환됩니다.
정리
array_slice() 함수는 시작 위치(begin), 길이(length), 키 보존 여부(preserve)를 조합하여 배열의 원하는 부분을 손쉽게 추출할 수 있는 강력한 도구입니다. 특히 음수 오프셋과 키 보존 옵션을 활용하면 다양한 상황에 유연하게 대응할 수 있습니다.