PHP 버전
4+
// 장바구니에서 구매 완료된 아이템 제거
$cart = ['티셔츠', '바지', '모자', '신발'];

/*
 * <바지를 장바구니에서 제거>
 * array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = [])
 * $array: 수정할 원본 배열 (참조로 전달됨)
 * $offset: 제거를 시작할 인덱스 (0부터 시작)
 * $length (옵션): 제거할 요소의 개수
 */
$purchased = array_splice($cart, 1, 1);

// 원본 배열
print_r($cart); // ['티셔츠', '모자', '신발']

// 반환 값
print_r($purchased); // ['바지']
// 제품 목록에서 단종된 상품 교체
$products = ['노트북', '태블릿', '스마트폰', '모니터'];

/*
 * <태블릿을 최신 모델로 교체>
 * array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = [])
 * $array: 수정할 원본 배열 (참조로 전달됨)
 * $offset: 배열을 변경하기 시작할 인덱스 (0부터 시작)
 * $length (옵션): 제거할 요소의 개수
 * $replacement (옵션): 배열에 새로 추가할 요소 또는 배열
 *  => $length와 함께 사용하면 교체가 가능
 */
$replacedProduct = array_splice($products, 1, 1, '신형 태블릿');

// 원본 배열
print_r($products); // ['노트북', '신형 태블릿', '스마트폰', '모니터']

// 반환 값
print_r($replacedProduct); // ['태블릿']
// 장바구니에 새 아이템 추가
$cart = ['티셔츠', '바지', '모자'];

/*
 * <모자 뒤에 신발을 추가>
 * array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = [])
 * $array: 수정할 원본 배열 (참조로 전달됨)
 * $offset: 배열을 변경하기 시작할 인덱스 (0부터 시작)
 * $length (옵션): 제거할 요소의 개수
 * $replacement (옵션): 배열에 새로 추가할 요소 또는 배열
 *  => $length가 0이면 삭제 없이 요소 추가
 */
$addedItem = array_splice($cart, 3, 0, '신발');

// 원본 배열
print_r($cart); // ['티셔츠', '바지', '모자', '신발']

// 반환 값
print_r($addedItem); // []
array_splice(
    array &$array,
    int $offset,
    ?int $length = null,
    mixed $replacement = []
): array
$arr = ['A', 'B', 'C', 'D'];

// 1. 요소 제거
$removed1 = array_splice($arr, 1, 2);
print_r($removed1); // ['B', 'C']

// 2. 요소 추가만 (길이 0)
$removed2 = array_splice($arr, 1, 0, ['X']);
print_r($removed2); // []

// 3. 음수 인덱스
$removed3 = array_splice($arr, -2, 1);
print_r($removed3); // ['X']
$fruits = ['사과', '배', '바나나'];

// '배' 뒤에 '오렌지' 추가
$added = array_splice($fruits, 2, 0, ['오렌지']);

print_r($fruits); // ['사과', '배', '오렌지', '바나나']
print_r($added);  // []
$fruits = ['사과', '배', '오렌지', '바나나'];

// '배'를 '키위'로 교체
$replaced = array_splice($fruits, 1, 1, ['키위']);

print_r($fruits);   // ['사과', '키위', '오렌지', '바나나']
print_r($replaced); // ['배']
$fruits = ['사과', '키위', '오렌지', '바나나'];

// 마지막 요소를 제거하고 '망고' 추가
$removed = array_splice($fruits, count($fruits) - 1, 1, ['망고']);

print_r($fruits);  // ['사과', '키위', '오렌지', '망고']
print_r($removed); // ['바나나']