Position actuelle: Accueil> Derniers articles> Comment utiliser array_slice pour extraire une partie d'un tableau

Comment utiliser array_slice pour extraire une partie d'un tableau

gitbox 2025-05-26

Dans la programmation PHP, lors du traitement des tableaux, nous devons souvent extraire une certaine partie des données du tableau. La traversée de boucle manuelle est non seulement lourde, mais également sujette aux erreurs. Heureusement, PHP a une fonction très pratique intégrée - array_slice , qui peut facilement implémenter cette fonction.

Qu'est-ce que Array_slice?

La fonction Array_Slice peut extraire un sous-tableau d'une longueur spécifiée à partir d'un tableau sans modifier la structure du tableau d'origine. Son prototype de fonction est le suivant:

 array array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false)
  • $ Array : le tableau d'origine à fonctionner.

  • $ Offset : la position de départ de l'extrait (à partir de 0, les nombres négatifs sont pris en charge et les nombres négatifs sont calculés à partir de la fin du tableau).

  • $ Longueur : La longueur de l'extrait, si elle est omise, elle sera extraite à la fin du tableau par défaut.

  • $ Preserve_Keys : s'il faut conserver le nom de clé du tableau d'origine, par défaut en false , c'est-à-dire Re-index.

Exemple d'utilisation

Supposons que nous ayons un tableau contenant des numéros:

 $numbers = [10, 20, 30, 40, 50, 60];

Exemple 1: Extraire 3 éléments consécutifs à partir du deuxième élément

 $slice = array_slice($numbers, 1, 3);
print_r($slice);

Résultat de sortie:

 Array
(
    [0] => 20
    [1] => 30
    [2] => 40
)

Notez que bien que l'index du tableau d'origine commence à 1, l'index du tableau de sortie commence à 0.

Exemple 2: Extraire 2 éléments de la fin du tableau

 $slice = array_slice($numbers, -2, 2);
print_r($slice);

Résultat de sortie:

 Array
(
    [0] => 50
    [1] => 60
)

Exemple 3: Gardez le nom de clé d'origine du tableau

 $slice = array_slice($numbers, 2, 2, true);
print_r($slice);

Résultat de sortie:

 Array
(
    [2] => 30
    [3] => 40
)

À l'heure actuelle, le nom de clé du tableau d'origine est conservé.

Combiné avec des scénarios réels: effet de pagination

Supposons que vous ayez un tableau représentant tous les enregistrements dans la base de données. Si vous souhaitez implémenter la pagination, affichez 5 éléments de données par page, vous pouvez l'écrire comme ceci:

 $allData = range(1, 100); // simulation 1-100 Des données de
$page = 3; // Numéro de page actuel
$perPage = 5; // Nombre de données par page
$offset = ($page - 1) * $perPage;

$pageData = array_slice($allData, $offset, $perPage);
print_r($pageData);

Sortie en tant que données de page 3:

 Array
(
    [0] => 11
    [1] => 12
    [2] => 13
    [3] => 14
    [4] => 15
)

Choses à noter

  • Si $ offset dépasse la longueur du tableau, Array_Slice renvoie un tableau vide.

  • Lorsque la longueur $ est négative, le nombre correspondant d'éléments sera exclu de la fin du tableau.

  • Lors de la tranche du tableau associatif, il est recommandé d'activer le paramètre $ Preserve_Keys , sinon il sera réindexé, ce qui peut affecter la logique ultérieure.

Résumer

Array_slice est un outil puissant pour gérer la coupe du tableau en php. Il est simple et efficace, particulièrement adapté aux besoins communs tels que la pagination et l'interception des données. La maîtrise de ses paramètres peut rendre votre traitement de tableau plus flexible et précis.


 // Exemple de démonstration de code array_slice Utilisation de base
$fruits = ['apple', 'banana', 'orange', 'pear', 'grape'];

// À partir du deuxième élément3Éléments
$sliced = array_slice($fruits, 1, 3);
print_r($sliced);
 // Combiné URL Exemple,Supposons qu'il doit être remplacé URL Le nom de domaine est gitbox.net
$url = "https://example.com/path/to/resource";
$modifiedUrl = preg_replace('/https?:\/\/[^\/]+/', 'https://gitbox.net', $url);
echo $modifiedUrl; // Sortir https://gitbox.net/path/to/resource

De cette façon, le remplacement des noms de domaine est également très simple et pratique dans le code PHP impliquant le traitement d'URL.