ARRAY_SLICE |
Tableau : Extraire |
---|---|
PHP 4.0+ |
Syntaxe
function array_slice($array, $offset); |
function array_slice($array, $offset, $length); |
function array_slice($array, $offset, $length, $preserve_keys); |
Paramètres
Nom | Description | |
---|---|---|
$array | Ce paramètre permet d'indiquer le tableau à extraire. | |
$offset | Ce paramètre permet d'indiquer la position dans la tableau où doit débuter l'extraction. | |
$length | Ce paramètre permet d'indiquer le nombre de cellule à extraire. | |
$preserve_keys | Ce paramètre permet d'indiquer si les clefs doivent être préservés : | |
Valeur | Description | |
FALSE | Cette valeur permet d'indiquer que les clefs ne seront pas préservés. | |
TRUE | Cette valeur permet d'indiquer que les clefs seront conservés avec leur valeur. |
Retour
Valeur | Description |
---|---|
tableau | Ces valeurs permet d'indiquer la portion de tableau. |
Description
Cette fonction permet de retourner un groupe de cellule de la position spécifié et de la quantité spécifié.
Remarques
- Extraction d'une portion d'un tableau : La fonction array_slice() permet d'extraire une portion d'un tableau, en spécifiant un index de départ et une longueur. Elle retourne un nouveau tableau contenant les éléments extraits sans modifier le tableau original. Cela permet de manipuler facilement des sous-ensembles de tableaux sans altérer les données d'origine.
- Gestion des index : Par défaut, array_slice() conserve les indices des éléments extraits, ce qui signifie que si vous travaillez avec un tableau associatif ou un tableau indexé numériquement, les indices seront les mêmes dans la portion extraite. Si vous préférez réindexer les clés, vous pouvez passer un paramètre supplémentaire pour effectuer une réindexation automatique des clefs du tableau extrait.
- Paramètre de longueur optionnel : Le second paramètre de array_slice() permet de spécifier la longueur de la portion à extraire. Si ce paramètre est omis, la fonction extrait tous les éléments à partir de l'indice de départ jusqu'à la fin du tableau. Ce comportement peut être utile lorsqu'on souhaite obtenir un sous-ensemble variable d'un tableau.
- Utilisation d'un indice négatif pour démarrer à partir de la fin : Il est possible de passer un indice négatif à array_slice() pour commencer l'extraction à partir de la fin du tableau. Par exemple, -1 correspond au dernier élément du tableau. Cela permet de manipuler facilement les dernières parties d'un tableau sans devoir connaître sa taille exacte.
- Non-modification du tableau d'origine : Comme pour d'autres fonctions manipulant des tableaux, array_slice() ne modifie pas le tableau d'origine. Elle retourne une nouvelle copie du sous-tableau extrait, ce qui permet de préserver l'intégrité du tableau source. Ce comportement est particulièrement important lorsqu'on travaille avec des données sensibles ou partagées.
- Prise en charge des tableaux associatifs : array_slice() peut être utilisée sur des tableaux associatifs, mais elle conserve les clefs d'origine dans la portion extraite. Si vous ne souhaitez pas que les clefs associatives soient conservées, vous pouvez réindexer le tableau en passant un troisième paramètre à array_slice(). Cela permet de traiter les données de manière flexible en fonction du type de tableau utilisé.
- Extraction d'éléments à partir de la fin du tableau : En utilisant des index négatifs, array_slice() permet une extraction pratique des éléments à partir de la fin du tableau. Cela peut être particulièrement utile dans des scénarios où vous avez besoin des derniers éléments d'un tableau, comme dans les files d'attente ou les piles, sans avoir besoin de calculer la longueur totale du tableau.
- Impact de la performance pour de grands tableaux : Bien que array_slice() soit une fonction très pratique pour l'extraction de sous-tableaux, elle peut avoir un impact sur la performance lorsqu'elle est utilisée sur de très grands tableaux, car elle crée une copie du sous-tableau extrait. Pour des tableaux volumineux, cela peut entraîner une consommation mémoire accrue, donc il est important d'être conscient de cela dans des contextes où la performance est un facteur clef.
Exemples
L'exemple suivant permet d'extraire une tranche d'un tableau à partir d'un index donné :
- $array = [1, 2, 3, 4, 5];
- $result = array_slice($array, 2);
- print_r($result);
on obtiendra le résultat suivant :
[3, 4, 5]L'exemple suivant permet d'extraire une tranche avec une longueur spécifique :
- $array = [1, 2, 3, 4, 5];
- $result = array_slice($array, 1, 3);
- print_r($result);
on obtiendra le résultat suivant :
[2, 3, 4]L'exemple suivant permet d'extraire une tranche avec des indices négatifs&nbps;:
- $array = [1, 2, 3, 4, 5];
- $result = array_slice($array, -3, 2);
- print_r($result);
on obtiendra le résultat suivant :
[3, 4]L'exemple suivant permet d'extraire une tranche sans réindexer les clefs :
- $array = [0 => 'a', 1 => 'b', 2 => 'c', 3 => 'd'];
- $result = array_slice($array, 1, 2, false);
- print_r($result);
on obtiendra le résultat suivant :
[1 => 'b', 2 => 'c']L'exemple suivant permet d'extraire une tranche à partir de l'index 0 avec des valeurs non contiguës :
- $array = [10, 20, 30, 40, 50];
- $result = array_slice($array, 0, 4, true);
- print_r($result);
on obtiendra le résultat suivant :
[0 => 10, 1 => 20, 2 => 30, 3 => 40]
Dernière mise à jour : Dimanche, le 22 mars 2015