array_slice()
함수의 사용법
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_slice(
array $array,
int $offset,
?int $length = null,
bool $preserve_keys = false
): array
/* array_slice(
원본 배열,
추출을 시작할 인덱스 위치[,
추출할 요소의 수[,
키를 유지할지 여부를 나타내는 부울(boolean) 값]]
);
*/
매개변수
$array |
필수. 원본 배열입니다. |
---|---|
$offset |
필수. 추출을 시작할 0 부터 시작하는 인덱스를 지정합니다.
음수 값을 사용할 수 있으며, 이 경우 배열의 끝에서부터 역으로 카운트됩니다. |
$length |
옵션. 추출할 요소의 수입니다.
|
$preserve_keys |
옵션. 추출된 배열의 키를 유지할지 여부를 결정합니다. 이 매개변수는 부울(boolean) 값이며 기본값은 false 입니다.
|
주의하세요!
$preserve_keys
매개변수는 인덱스 배열에서만 true
로 설정하여 변경할 수 있습니다.
연관 배열에서의 키는 항상 이 매개변수에 관계없이 보존됩니다.
반환 값
원본 배열에서 지정된 범위의 요소를 잘라내어(slice) 추출한 결과를 새로운 배열로 반환합니다.
반환된 배열은 선택한 범위의 원본 배열 요소를 포함하며, 키는 유지되거나 재설정될 수 있습니다. (이는 네 번째 매개변수 $preserve_keys
에 따라 달라집니다)
매개변수와 반환 값 예시
$indexed_arr = ['가', '나', '다', '라', '마'];
print_r(array_slice($indexed_arr, 0)); // Array ( [0] => 가 [1] => 나 [2] => 다 [3] => 라 [4] => 마 )
print_r(array_slice($indexed_arr, 2)); // Array ( [0] => 다 [1] => 라 [2] => 마 )
print_r(array_slice($indexed_arr, 2, 1)); // Array ( [0] => 다 )
print_r(array_slice($indexed_arr, -2, 1)); // Array ( [0] => 라 )
print_r(array_slice($indexed_arr, 7)); // Array ( )
// 세 번째 매개변수에 따른 배열 키의 보존 여부 차이
print_r(array_slice($indexed_arr, 2, 2)); // Array ( [0] => 다 [1] => 라 )
print_r(array_slice($indexed_arr, 2, 2, true)); // 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',
102 => 'Smartphone',
103 => 'Headphones',
104 => 'Tablet',
105 => 'Camera',
106 => 'Smartwatch',
];
// 상품 목록에서 ID가 102부터 104까지인 상품 추출
$selectedProducts = array_slice($products, 102, 3, true);
// 결과 출력
print_r($selectedProducts);
배열의 끝에서부터 특정 개수의 요소 추출
// 최근 활동 목록 배열
$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 foreach() 반복문 사용법 및 활용 예제
- PHP array_map() 함수 – 개념 정리 및 사용 예제
- PHP array_filter() 함수 - 개념 정리 및 사용 예제
- PHP array_search() 함수 - 개념 정리 및 사용 예제
- PHP array_keys() 함수 - 배열 키 목록 가져오기
- PHP array_values() 함수 - 배열 값 목록 가져오기
- PHP array_pop() 함수 - 배열 마지막 값 제거하기
- PHP array_shift() 함수 - 배열 첫 번째 값 제거하기
- 자바스크립트 배열 slice() 함수 - 개념 정리 및 사용 예제