array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'pt_BR', ), 'this' => array ( 0 => 'function.array-splice.php', 1 => 'array_splice', ), 'up' => array ( 0 => 'ref.array.php', 1 => 'Funções para Array', ), 'prev' => array ( 0 => 'function.array-slice.php', 1 => 'array_slice', ), 'next' => array ( 0 => 'function.array-sum.php', 1 => 'array_sum', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'pt_BR', 'path' => 'reference/array/functions/array-splice.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
array_splice — Remove uma parte array e a substitui por outra coisa
Remove os elementos especificados por offset
e
length
do array array
,
e os substitui com os elementos do
array replacement
, se for especificado.
Nota:
Chaves numéricas em
array
não são preservadas.
Nota: Se
replacement
não for um array, ele será convertido para um array (i.e.(array) $replacement
). Isso pode resultar em um comportamento inesperado ao usar um objeto oureplacement
null
.
array
O array de entrada.
offset
Se offset
for positivo então o começo da
região removida será nesse deslocamento a partir do início do
array array
.
Se offset
for negativo então o começo da
região removida será nesse deslocamento a partir do final do
array array
.
length
Se length
for omitido, remove tudo
a partir de offset
até o final do array.
Se length
for especificado e for positivo,
então essa quantidade de elementos será removida.
Se length
for especificado e for negativo,
então o final da região removida será essa quantidade de elementos
a partir do final do array.
Se length
for especificado e for zero,
nenhum elemento será removido.
Para remover tudo a partir de offset
até o final do
array quando replacement
também é especificado,
use count($input)
para length
.
replacement
Se o array replacement
for especificado, então os
elementos removidos serão substituidos pelo elementos desse array.
Se offset
e length
são tais que nada é removido, então os elementos do
array replacement
serão inseridos no lugar
especificado pelo offset
.
Nota:
Chaves em
replacement
não são preservadas.
Se replacement
for de apenas um elemento
então não é necessário colocar array()
ou colchetes
ao redor dele, a não ser que elementos seja um array em si, um objeto ou null
.
Retorna um array que consiste nos elementos extraídos.
Versão | Descrição |
---|---|
8.0.0 |
length agora é anulável.
|
Exemplo #1 Exemplos da array_splice()
<?php
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 2);
var_dump($input);
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, -1);
var_dump($input);
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, 1, count($input), "laranja");
var_dump($input);
$input = array("vermelho", "verde", "azul", "amarelo");
array_splice($input, -1, 1, array("preto", "marrom"));
var_dump($input);
?>
O exemplo acima produzirá:
array(2) { [0]=> string(3) "vermelho" [1]=> string(5) "verde" } array(2) { [0]=> string(3) "vermelho" [1]=> string(6) "amarelo" } array(2) { [0]=> string(3) "vermelho" [1]=> string(6) "laranja" } array(5) { [0]=> string(3) "vermelho" [1]=> string(5) "verde" [2]=> string(4) "azul" [3]=> string(5) "preto" [4]=> string(6) "marrom" }
Exemplo #2 Declarações equivalentes a vários exemplos da array_splice()
As seguintes declarações são equivalentes:
<?php
// adiciona dois elementos a $input
array_push($input, $x, $y);
array_splice($input, count($input), 0, array($x, $y));
// remove o último elemento de $input
array_pop($input);
array_splice($input, -1);
// remove o primeiro elemento de $input
array_shift($input);
array_splice($input, 0, 1);
// insere um elemento no início de $input
array_unshift($input, $x, $y);
array_splice($input, 0, 0, array($x, $y));
// substitui o valor em $input no índice $x
$input[$x] = $y; // para arrays onde a chave é igual ao deslocamento
array_splice($input, $x, 1, $y);
?>