Dans PHP, la fonction Array_Slice est un outil commun utilisé pour extraire un sous-tableau d'un tableau. Son prototype de fonction est le suivant:
array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
Où, la longueur de paramètre $ est utilisée pour spécifier le nombre d'éléments à intercepter. Cependant, lorsque la longueur $ est 0 ou nul , le comportement est différent. Cet article analysera en détail la différence entre Array_Slice dans ces deux cas.
$ tableau : le tableau d'entrée.
$ Offset : Par où commencer à intercepter, des nombres négatifs sont pris en charge.
$ Longueur : le nombre d'éléments interceptés, le NULL par défaut signifie qu'il est intercepté à la fin du tableau.
$ Preserve_keys : s'il faut conserver le nom clé du tableau d'origine.
Lorsque vous appelez Array_slice , si aucun paramètre de longueur de $ n'est passé ou que la valeur transmise est nul , PHP interceptera de $ compense à la fin du tableau.
Exemple:
$arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, NULL);
print_r($result);
Sortir:
Array
(
[0] => 3
[1] => 4
[2] => 5
)
Explication: À partir de l'indice 2, interceptant jusqu'à la fin du tableau.
Lorsque $ la longueur est explicitement réglé sur 0 , Array_Slice renvoie un tableau vide. Autrement dit, quelle que soit la durée du tableau, la longueur interceptée est nulle, ce qui signifie qu'aucun éléments n'est retourné.
Exemple:
$arr = [1, 2, 3, 4, 5];
$result = array_slice($arr, 2, 0);
print_r($result);
Sortir:
Array
(
)
Explication: Spécifiez la longueur à 0 et n'interceptez aucun éléments.
paramètre de longueur | Résultat de retour | illustrer |
---|---|---|
NUL | Tous les éléments du décalage à la fin du tableau | Comportement par défaut, intercepter tous les éléments restants |
0 | Tableau vide | Intercepter la longueur de 0, et le résultat est un tableau vide |
Si vous souhaitez intercepter la queue du tableau, il est recommandé d'omettre le paramètre de longueur $ ou de passer explicitement Null .
Si vous souhaitez éviter de retourner accidentellement des tableaux vides, veillez à ne pas définir la longueur $ sur 0 .
Pour les paramètres passés dynamiquement, faites des jugements de type pour éviter de passer 0S pour affecter les résultats.
$arr = ['a' => 1, 'b' => 2, 'c' => 3];
$result = array_slice($arr, 1, NULL, true);
print_r($result);
Sortir:
Array
(
[b] => 2
[c] => 3
)
Ici, Null est transmis pour intercepter tous les éléments restants, tout en maintenant le nom de clé d'origine.
PHP Documentation officielle: https://gitbox.net/manual/en/fonction.array-slice.php