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.
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é.
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 .
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é.
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.