array_splice

(PHP 4, PHP 5)

array_splice -- Remove uma parcela do array e substitui com outros elementos

Descrição

array array_splice ( array &input, int offset [, int length [, array replacement]] )

array_splice() remove a sequência de elementos do array input especificados por offset e length, e os substitui com os elementos do array replacement, se for especificado. Retorna um array contendo os elementos removidos. Note que as chaves numéricas em input não são preservadas.

Se offset for positivo então o começo da região a ser removida será nessa posição a partir do início do array input. Se offset for negativo então o ínicio será dessa distância do final de input.

Se length for omitido, todos os elementos a partir de offset até o final do array serão removidos. Se length for especificado e positivo, então essa quantidade de elementos será removida. Se length for especificado e negativo então o final da região a ser removida será dessa quantidade de elementos a partir do final do array. Dica: para remover todos elementos a partir de offset até o final do array quando replacement também é especificado, use count($input) para o argumento length.

Se o array replacement for especificado, então os elementos removidos serão substituidos pelo elementos desse array. Se offset e length são dados de forma que nada será removido, então os elementos de replacement serão inseridos no lugar especificado por offset. Note que as chaves em replacement não são preservadas. Dica: se a substituição for de apenas um elemento então não será necessário colocar array() para ele, a não ser que elementos seja um array.

Os seguintes comandos mudam os valores de $input da mesma maneira:

Tabela 1. Equivalências de 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, 0, 1)
array_unshift($input, $x, $y) array_splice($input, 0, 0, array($x, $y))
$input[$x] = $y // para arrays aonde as chaves tem índices iguais array_splice($input, $x, 1, $y)

Retorna um array contendo os elementos removidos.

Exemplo 1. Exemplos de array_splice()

<?php
$input
= array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 2);
// $input será agora array("vermelho", "verde")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, -1);
// $input será agora array("vermelho", "amarelo")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, count($input), "laranja");
// $input será agora array("vermelho", "laranja")

$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, -1, 1, array("preto", "marrom"));
// $input será agora array("vermelho", "verde", "azul", "preto", "marrom")
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 3, 0, "roxo");
// A array $input agora é ("vermelho", "verde",
//          "azul", "roxo", "amarelo");

?>

Veja também array_slice(), unset() e array_merge().