array_splice()는 input 배열로부터 offset 과 length 에 정해진대로 배열원소를 제거하고, 매개변수가 주어진다면 replacement 배열의 배열원소로 그부분을 대체한다. 그리고 확장된 배열원소를 포함하는 배열을 반환한다.
offset이 양수이면 삭제될 부분의 시작은 input 배열의 시작에서부터의 offset에서 시작된다. offset이 음수이면 input 배열의 끝에서부터의 옵셋 수에서 시작된다.
length가 생략되면, offset에서 배열의 끝까지의 모든 원소를 삭제된다. length가 주어지고 양수이면, 그 수만큼의 원소가 삭제될것이다. length가 주어지고 음수이면, 삭제되는 부분의 끝은 배열의 끝에서부터 그 수만큼의 원소가 될것이다. 팁: replacement가 주어져있고 offset에서 배열 끝까지의 모든 원소를 삭제하려면 length 매개변수에 count($input)을 사용하도록 한다.
replacement 배열이 주어지면, 제거된 원소들은 이 배열의 원소들로 대체된다. offset과 length가 아무것도 삭제되지 않도록 주어지면, replacement 배열의 원소들을 offset에 의해 설정된 위치에 끼워넣는다. 팁: 한개의 원소만 대체되는 경우이고 그 원소가 배열자체가 아니라면 array()를 넣을 필요는 없다.
다음은 동일한 결과를 낸다:
표 1. array_splice() 동치
array_push($input, $x, $y) | array_splice($input, count($input), 0, array($x, $y)) |
array_pop($input) | array_splice($input, -1) |
array_shift($input) | array_splice($input, -1) |
array_unshift($input, $x, $y) | array_splice($input, 0, 0, array($x, $y)) |
$a[$x] = $y | array_splice($input, $x, 1, $y) |
제거된 원소로 구성된 배열을 반환한다.