Fonction array_splice
La fonction array_splice découpe et retourne
une partie d'un tableau. La partie découpée
disparaît alors du tableau. À la place de la partie découpée,
on peut insérer de nouveaux éléments.
Le premier paramètre spécifie le tableau à découper. Le deuxième paramètre indique à partir de quel élément commencer la découpe, et le troisième - combien d'éléments découper. Le troisième paramètre peut être négatif - dans ce cas le décompte commence depuis la fin (-1 - dernier élément, -2 - avant-dernier et ainsi de suite). Le troisième paramètre peut ne pas être spécifié du tout - dans ce cas le tableau sera découpé jusqu'à sa fin.
Dans le dernier paramètre optionnel, on peut spécifier un tableau d'éléments qui seront insérés en remplacement de ceux supprimés.
Syntaxe
array_splice(array &$array, int $offset, ?int $length = null, mixed $replacement = []): array
Exemple
Découpons les éléments à partir du premier (ayant
l'indice 0), 3 éléments :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 0, 3);
var_dump($res);
?>
Résultat de l'exécution du code :
['a', 'b', 'c']
Le tableau $arr deviendra alors :
['d', 'e']
Exemple
Découpons les éléments à partir du deuxième (ayant
l'indice 1), 3 éléments :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 3);
var_dump($res);
?>
Résultat de l'exécution du code :
['b', 'c', 'd']
Le tableau $arr deviendra alors :
['a', 'e']
Exemple
Découpons les éléments à partir du deuxième (ayant l'indice 1) jusqu'à la fin du tableau. Pour cela, on ne spécifie pas le troisième paramètre :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1);
var_dump($res);
?>
Résultat de l'exécution du code :
['b', 'c', 'd', 'e']
Le tableau $arr deviendra alors :
['a']
Exemple
Découpons les éléments à partir de l'avant-dernier,
2 éléments. Pour cela, le deuxième paramètre
est défini à -2 (position de l'avant-dernier
élément) :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, -2, 2);
var_dump($res);
?>
Résultat de l'exécution du code :
['d', 'e']
Le tableau $arr deviendra alors :
['a', 'b', 'c']
Exemple
Découpons les éléments à partir du deuxième (ayant
l'indice 1), 2 éléments, et en remplacement insérons
les éléments 1, 2, 3 :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 2, [1, 2, 3]);
var_dump($res);
?>
Résultat de l'exécution du code :
['b', 'c']
Le tableau $arr deviendra alors :
['a', 1, 2, 3, 'd', 'e']
Exemple
Ne découpons rien du tout,
et insérons simplement les éléments 1, 2,
3 à partir de la position 1. Pour
cela, le troisième paramètre est mis à zéro :
<?php
$arr = ['a', 'b', 'c', 'd', 'e'];
$res = array_splice($arr, 1, 0, [1, 2, 3]);
var_dump($res);
?>
Résultat de l'exécution du code :
[]
Le tableau $arr deviendra alors :
['a', 1, 2, 3, 'b', 'c', 'd', 'e']
Voir aussi
-
la fonction
array_slice,
qui découpe une partie d'un tableau sans modifier le tableau lui-même