Position actuelle: Accueil> Derniers articles> L'effet du paramètre Preserve_keys dans Array_Slice sur la rétention du nom de clé

L'effet du paramètre Preserve_keys dans Array_Slice sur la rétention du nom de clé

gitbox 2025-05-28

En PHP, la fonction Array_Slice est un outil très pratique pour intercepter les parties spécifiées d'un tableau. Sa signature de fonction est la suivante:

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

Parmi eux, le paramètre $ Preserve_keys est utilisé pour contrôler s'il faut conserver le nom de clé du tableau d'origine. La fonction de ce paramètre semble simple, mais dans une utilisation réelle, de nombreuses personnes ont des doutes quant à savoir s'il conserve vraiment le nom de clé. Cet article expliquera en détail le comportement du paramètre $ Preserve_keys et l'expliquera en conjonction avec des exemples de code.

La fonction du paramètre $ Preserve_keys

Array_slice interceptera un élément de données du tableau $ array . Par défaut (c'est-à-dire que $ Preserve_Keys est faux ), le tableau renvoyé sera réindexé, c'est-à-dire que le nom de clé sera réinitialisé à un index de nombre à partir de 0.

Lorsque $ Preserve_keys est défini sur true , la fonction essaiera de préserver le nom de clé du tableau d'origine. Ceci est très important lorsque vous traitez avec des tableaux associatifs, car vous souhaitez préserver le sens du nom clé.

Exemple d'analyse de code

Utilisons un morceau de code pour illustrer:

 <?php
$array = [
    'a' => 'apple',
    'b' => 'banana',
    'c' => 'cherry',
    5   => 'date',
    6   => 'elderberry',
];

// Comportement par défaut preserve_keys = false
$slice1 = array_slice($array, 1, 3);
print_r($slice1);

/*
Sortir:
Array
(
    [0] => banana
    [1] => cherry
    [2] => date
)
*/

// preserve_keys = true
$slice2 = array_slice($array, 1, 3, true);
print_r($slice2);

/*
Sortir:
Array
(
    [b] => banana
    [c] => cherry
    [5] => date
)
*/
?>

À partir du code ci-dessus, nous pouvons voir:

  • Lorsque $ Preserve_Keys est faux , le nom de la clé du tableau renvoyé est réinitialisé à l'indice numérique (0, 1, 2).

  • Lorsque $ Preserve_Keys est vrai , le tableau de retour conserve les noms de clés d'origine «B» , «C» et 5 .

Choses à noter

  • Si le tableau est un tableau d'index (clé numérique) et que $ Preserve_Keys est faux , le nom de la clé du tableau renvoyé sera réorganisé.

  • S'il s'agit d'un tableau associatif (clé de chaîne), même si $ préserve_keys est faux , le nom de clé sera remplacé par un index numérique, ce qui entraînera la perte du nom de la clé.

  • Lorsque $ Preserve_Keys est vrai , le nom de clé du tableau retourné reste le même, mais si vous utilisez ce tableau pour les opérations ultérieures, assurez-vous de faire attention à l'intégrité du nom de clé.

Suppléments supplémentaires

Description de l'array_slice dans le manuel officiel: https://gitbox.net/manual/en/fonction.array-slice.php

Le nom de domaine est remplacé ici en tant que gitbox.net , vous pouvez visiter pour plus de détails.