정의 및 사용 방법
- PHP 버전
- 4+
array_slice() 함수는
배열의 특정 범위의 요소를 잘라내어(slice) 추출한 결과를 새로운 배열로 반환합니다. 원본 배열은 변경되지 않습니다.
이 함수를 사용하여 배열의 원하는 범위의 요소를 잘라서 추출할 수 있습니다.
기본 예제
// 원본 배열
$array = ['a', 'b', 'c', 'd', 'e'];
/* array_slice() 함수를 사용하여
원본 배열에서 인덱스 1부터 시작하여 3개의 요소를 잘라내어(slice) 추출한 결과를
새로운 배열로 반환 */
$sliced_array = array_slice($array, 1, 3);
print_r($sliced_array);
/*
출력:
Array
(
[0] => b
[1] => c
[2] => d
)
*/
참고하세요!
array_slice() 함수명의 유래는 그 함수의 동작과 관련이 있습니다. "slice"라는 용어는 어떤 대상에서 일부분을 잘라내거나 조각으로 추출하는 동작을 나타냅니다. array_slice() 함수는 이러한 동작을 수행하는 함수로, 원본 배열에서 특정 범위의 요소를 "잘라내서" 새로운 배열로 만듭니다. 따라서 함수명 array_slice()는 해당 동작을 명확하게 나타내기 위해 사용되었을 것으로 생각됩니다.
문자열에서는 substr() 함수가 문자열의 특정 범위의 문자열을 잘라내어 추출한 결과를 새로운 문자열로 반환합니다.
구문
array_slice(
array $array,
int $offset,
?int $length = null,
bool $preserve_keys = false
): array
/* array_slice(
원본 배열,
추출을 시작할 인덱스 위치[,
추출할 요소의 수[,
키를 유지할지 여부를 나타내는 부울(boolean) 값]]
);
*/
매개변수
$array |
필수. 원본 배열입니다. |
|---|---|
$offset |
필수. 추출을 시작할 0부터 시작하는 인덱스를 지정합니다.
음수 값을 사용할 수 있으며, 이 경우 배열의 끝에서부터 역으로 카운트하여 시작 위치를 결정합니다. 예를 들어, -1은 마지막 요소, -3은 끝에서 세 번째 요소부터 시작합니다. |
$length |
옵션. 추출할 요소의 수입니다.
|
$preserve_keys |
옵션. 추출된 배열의 키를 유지할지 여부를 결정합니다. 이 매개변수는 부울(boolean) 값이며 기본값은 false입니다.
|
주의하세요!
$preserve_keys 매개변수는 인덱스 배열에서만 true 로 설정하여 변경할 수 있습니다.
연관 배열에서의 키는 항상 이 매개변수에 관계없이 보존됩니다.
반환 값
원본 배열에서 지정된 범위의 요소를 잘라내어(slice) 추출한 결과를 새로운 배열로 반환합니다.
반환된 배열은 선택한 범위의 원본 배열 요소를 포함하며, 키는 유지되거나 재설정될 수 있습니다. (이는 네 번째 매개변수 $preserve_keys에 따라 달라집니다.)
매개변수와 반환 값 예시
$indexed_arr = ['가', '나', '다', '라', '마'];
print_r(array_slice($indexed_arr, 0)); // 전체 추출
print_r(array_slice($indexed_arr, 2)); // 인덱스 2('다')부터 끝까지
print_r(array_slice($indexed_arr, 2, 1)); // 인덱스 2부터 1개만
print_r(array_slice($indexed_arr, -2, 1)); // 뒤에서 2번째('라')부터 1개
print_r(array_slice($indexed_arr, 7)); // 범위를 벗어나면 빈 배열 Array ( )
// 키 보존 여부 비교
print_r(array_slice($indexed_arr, 2, 2)); // 키 재설정: [0]=>다, [1]=>라
print_r(array_slice($indexed_arr, 2, 2, true)); // 키 유지: [2]=>다, [3]=>라
Array
(
[0] => 가
[1] => 나
[2] => 다
[3] => 라
[4] => 마
)
Array
(
[0] => 다
[1] => 라
[2] => 마
)
Array
(
[0] => 다
)
Array
(
[0] => 라
)
Array
(
)
Array
(
[0] => 다
[1] => 라
)
Array
(
[2] => 다
[3] => 라
)
$associative_arr = [
'a' => 'red',
'b' => 'green',
'c' => 'blue',
'd' => 'olive',
'e' => 'brown'
];
print_r(array_slice($associative_arr, 0)); // Array ( [a] => red [b] => green [c] => blue [d] => olive [e] => brown )
print_r(array_slice($associative_arr, 2)); // Array ( [c] => blue [d] => olive [e] => brown )
print_r(array_slice($associative_arr, 2, 1)); // Array ( [c] => blue )
print_r(array_slice($associative_arr, -2, 1)); // Array ( [d] => olive )
print_r(array_slice($associative_arr, 7)); // Array ( )
// 세 번째 매개변수에 따른 배열 키의 보존 여부 차이
// 연관 배열에서의 키는 항상 이 매개변수에 관계없이 보존됩니다.
print_r(array_slice($associative_arr, 2, 2)); // Array ( [c] => blue [d] => olive )
print_r(array_slice($associative_arr, 2, 2, true)); // Array ( [c] => blue [d] => olive )
활용 예제
array_slice() 함수는 배열에서 일부를 추출하는 데 유용합니다. 다음은 array_slice() 함수의 다양한 활용 사례입니다.
배열의 처음부터 특정 인덱스까지의 요소 추출
// 최신 로그 데이터 배열
$logData = [
'2022-01-01' => 'Log entry 1',
'2022-01-02' => 'Log entry 2',
/* ... */
];
// 최근 5일간의 로그 데이터 추출
$recentLogs = array_slice($logData, 0, 5);
// 결과 출력
print_r($recentLogs);
특정 인덱스 범위의 요소 추출
// 상품 목록 배열
$products = [
101 => 'Laptop', // 인덱스 0
102 => 'Smartphone', // 인덱스 1 (추출 시작점!)
103 => 'Headphones', // 인덱스 2
104 => 'Tablet', // 인덱스 3
105 => 'Camera', // 인덱스 4
106 => 'Smartwatch', // 인덱스 5
];
// 상품 목록에서 '두 번째(인덱스 1)' 요소부터 '3개'를 추출
// $preserve_keys를 true로 설정해야 키 값(102, 103, 104)이 유지됩니다.
$selectedProducts = array_slice($products, 1, 3, true);
// 결과 출력
print_r($selectedProducts);
/*
출력 결과:
Array
(
[102] => Smartphone
[103] => Headphones
[104] => Tablet
)
*/
배열의 끝에서부터 특정 개수의 요소 추출
// 최근 활동 목록 배열
$recentActivity = [
'Commented on a post',
'Liked a photo',
'Posted a status',
'Followed a user',
'Shared a link',
];
// 가장 최근 3개의 활동 추출
$selectedActivity = array_slice($recentActivity, -3, null, true);
// 결과 출력
print_r($selectedActivity);
같이 보기
- PHP array_splice() 함수 – 배열의 요소 제거·교체·추가
- PHP foreach() 반복문 사용법 및 활용 예제
- PHP array_map() 함수 – 개념 정리 및 사용 예제
- PHP array_filter() 함수 - 개념 정리 및 사용 예제
- PHP array_search() 함수 - 개념 정리 및 사용 예제
- PHP array_keys() 함수 - 배열 키 목록 가져오기
- PHP array_values() 함수 - 배열 값 목록 가져오기
- PHP array_pop() 함수 - 배열 마지막 값 제거하기
- PHP array_shift() 함수 - 배열 첫 번째 값 제거하기
- 자바스크립트 배열 slice() 함수 - 개념 정리 및 사용 예제