PHP 버전
4+
// 원본 배열
$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(
    array $array,
    int $offset,
    ?int $length = null,
    bool $preserve_keys = false
): array

/* array_slice(
    원본 배열,
    추출을 시작할 인덱스 위치[,
    추출할 요소의 수[,
    키를 유지할지 여부를 나타내는 부울(boolean) 값]]
   );
*/
$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]=>라
출력
$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 )
// 최신 로그 데이터 배열
$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);