array_splice 함수
함수 array_splice는 배열의 일부를 잘라내어 반환합니다.
이때 잘라낸 부분은 배열에서 사라집니다.
잘라낸 부분 대신 새로운 요소들을 삽입할 수 있습니다.
첫 번째 매개변수로 자를 배열을 지정합니다. 두 번째 매개변수로 어느 요소부터 잘라낼지 지정하고, 세 번째 매개변수로 몇 개의 요소를 잘라낼지 지정합니다. 세 번째 매개변수는 음수일 수 있습니다 - 이 경우 끝에서부터 계산을 시작합니다 (-1 - 마지막 요소, -2 - 끝에서 두 번째 요소 등). 세 번째 매개변수를 전혀 지정하지 않을 수도 있습니다 - 이 경우 배열은 끝까지 잘립니다.
마지막 선택적 매개변수에서 삭제된 부분 대신 삽입될 요소들의 배열을 지정할 수 있습니다.
구문
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
예제
첫 번째(번호 0) 요소부터,
3개를 잘라내 보겠습니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
코드 실행 결과:
['a', 'b', 'c']
이때 $arr 배열은 다음과 같이 됩니다:
['d', 'e']
예제
두 번째(번호 1) 요소부터,
3개를 잘라내 보겠습니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
코드 실행 결과:
['b', 'c', 'd']
이때 $arr 배열은 다음과 같이 됩니다:
['a', 'e']
예제
두 번째(번호 1) 요소부터 배열 끝까지 잘라내 보겠습니다. 이를 위해 세 번째 매개변수를 작성하지 않습니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
코드 실행 결과:
['b', 'c', 'd', 'e']
이때 $arr 배열은 다음과 같이 됩니다:
['a']
예제
끝에서 두 번째 요소부터,
2개를 잘라내 보겠습니다.
이를 위해 두 번째 매개변수를
-2(끝에서 두 번째 요소의 위치)로 설정합니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
코드 실행 결과:
['d', 'e']
이때 $arr 배열은 다음과 같이 됩니다:
['a', 'b', 'c']
예제
두 번째(번호 1) 요소부터,
2개를 잘라내고,
그 자리에 요소 1, 2, 3를
삽입해 보겠습니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
코드 실행 결과:
['b', 'c']
이때 $arr 배열은 다음과 같이 됩니다:
['a', 1, 2, 3, 'd', 'e']
예제
아무것도 잘라내지 않고,
위치 1부터 요소 1, 2,
3를 삽입해 보겠습니다.
이를 위해 세 번째 매개변수를 0으로 설정합니다:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
코드 실행 결과:
[]
이때 $arr 배열은 다음과 같이 됩니다:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
참고 항목
-
함수
array_slice,
이 함수는 배열 자체를 변경하지 않고 배열의 일부를 잘라냅니다.