Функция array_splice
La función array_splice corta y devuelve
parte de un array. Al hacerlo, la parte cortada
desaparece del array. En lugar de la parte cortada
se pueden insertar nuevos elementos.
El primer parámetro especifica el array a cortar. El segundo parámetro especifica desde qué elemento comenzar a cortar, y el tercero - cuántos elementos cortar. El tercer parámetro puede ser negativo - en este caso el conteo comenzará desde el final (-1 - último elemento, -2 - penúltimo y así sucesivamente). El tercer parámetro puede omitirse por completo - en este caso el array se cortará hasta el final.
En el último parámetro opcional se puede especificar un array de elementos que serán insertados en lugar de los eliminados.
Sintaxis
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Ejemplo
Cortemos elementos desde el primero (tiene
número 0), 3 unidades:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Resultado de ejecutar el código:
['a', 'b', 'c']
Al mismo tiempo, el array $arr quedará así:
['d', 'e']
Ejemplo
Cortemos elementos desde el segundo (tiene
número 1), 3 unidades:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Resultado de ejecutar el código:
['b', 'c', 'd']
Al mismo tiempo, el array $arr quedará así:
['a', 'e']
Ejemplo
Cortemos elementos desde el segundo (tiene número 1) hasta el final del array. Para ello no escribimos el tercer parámetro:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Resultado de ejecutar el código:
['b', 'c', 'd', 'e']
Al mismo tiempo, el array $arr quedará así:
['a']
Ejemplo
Cortemos elementos desde el penúltimo,
2 unidades. Para ello establecemos el segundo parámetro
en -2 (posición del penúltimo
elemento):
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Resultado de ejecutar el código:
['d', 'e']
Al mismo tiempo, el array $arr quedará así:
['a', 'b', 'c']
Ejemplo
Cortemos elementos desde el segundo (tiene
número 1), 2 unidades, y en su lugar insertemos
elementos 1, 2, 3:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Resultado de ejecutar el código:
['b', 'c']
Al mismo tiempo, el array $arr quedará así:
['a', 1, 2, 3, 'd', 'e']
Ejemplo
No cortemos nada en absoluto,
y simplemente insertemos elementos 1, 2,
3 comenzando desde la posición 1. Para
ello el tercer parámetro se establece en cero:
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Resultado de ejecutar el código:
[]
Al mismo tiempo, el array $arr quedará así:
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Véase también
-
la función
array_slice,
que corta parte de un array sin modificar el array mismo