Fonction array_slice

La fonction array_slice extrait et retourne une partie d'un tableau. Le tableau original n'est pas modifié. Le premier paramètre spécifie le tableau à extraire. Le deuxième paramètre indique à partir de quel élément commencer l'extraction, et le troisième - combien d'éléments extraire. Le deuxième paramètre peut être négatif - dans ce cas le décompte commence à partir de la fin (-1 - le dernier élément, -2 - l'avant-dernier et ainsi de suite). Le troisième paramètre peut être omis - dans ce cas le tableau est extrait jusqu'à la fin.

Le dernier paramètre optionnel détermine s'il faut conserver les clés lors de l'extraction, true - conserver, false (par défaut) - ne pas conserver. Les clés de type chaîne de caractères sont toujours conservées, indépendamment de la valeur de ce paramètre.

Syntaxe

phparray_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array

Exemple

Extrayons les éléments à partir du premier (ayant l'indice 0), 3 éléments :

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['a', 'b', 'c']

Exemple

Extrayons les éléments à partir du deuxième (ayant l'indice 1), 3 éléments :

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1, 3);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['b', 'c', 'd']

Exemple

Extrayons les éléments à partir du deuxième (ayant l'indice 1) jusqu'à la fin du tableau. Pour cela, on omet le troisième paramètre :

php<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, 1);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['b', 'c', 'd', 'e']

Exemple

Extrayons 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<?php
  $arr = ['a', 'b', 'c', 'd', 'e'];
  
  $res = array_slice($arr, -2, 2);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['d', 'e']

Exemple

Par défaut, la fonction ne conserve pas les clés lors de l'extraction :

php<?php
  $arr = [1 => 'a', 2 => 'b', 3 => 'c', 4 => 'd', 5 => 'c'];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['a', 'b', 'c']

Exemple

Faisons en sorte que les clés soient conservées. Pour cela, définissons le dernier paramètre à true :

php<?php
  $arr = [1 => 'a', 2 => 'b', 3 => 'c'];
  
  $res = array_slice($arr, 0, 3, true);
  var_dump($res);
?>

Résultat de l'exécution du code :

php[1 => 'a', 2 => 'b', 3 => 'c']

Exemple

Les clés de type chaîne de caractères sont conservées lors de l'extraction :

php<?php
  $arr = ['a' => 1, 'b' => 2, 'c' => 3, 'd' => 4, 'e' => 5];
  
  $res = array_slice($arr, 0, 3);
  var_dump($res);
?>

Résultat de l'exécution du code :

php['a' => 1, 'b' => 2, 'c' => 3]

Voir aussi

  • la fonction array_splice,
    qui extrait une partie d'un tableau en modifiant le tableau original