Position actuelle: Accueil> Derniers articles> Créez un sous-ensemble d'un tableau à l'aide de Array_Slice

Créez un sous-ensemble d'un tableau à l'aide de Array_Slice

gitbox 2025-05-28

Dans la programmation quotidienne de PHP, nous devons souvent extraire une partie des éléments d'un tableau pour afficher, paginer ou traiter des données de sous-ensemble. PHP offre une fonction très pratique - array_slice () , qui peut nous aider à accomplir cette tâche efficacement.

Qu'est-ce que Array_slice?

Array_slice () est une fonction de PHP utilisée pour extraire un sous-tableau d'un tableau. Il ne change pas le tableau d'origine, mais renvoie le nouveau tableau de la partie interceptée. La syntaxe de base est la suivante:

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

  • $ Offset : par où commencer à intercepter. S'il s'agit d'un nombre négatif, il commence par la réciprocité à la fin du tableau.

  • $ Longueur (facultatif): le nombre d'éléments à intercepter. S'il est omis, il sera intercepté du décalage à la fin du tableau.

  • $ Preserve_Keys (facultatif): s'il faut conserver le nom de la clé d'origine, la valeur par défaut est fausse .

Exemple d'explication

Exemple 1: utilisation de base

 $fruits = ['apple', 'banana', 'orange', 'grape', 'melon'];
$sliced = array_slice($fruits, 1, 3);
print_r($sliced);

Sortir:

 Array
(
    [0] => banana
    [1] => orange
    [2] => grape
)

À partir de l'indice 1, interceptez 3 éléments. Notez que les noms de clés sont réorganisés, car Preserve_Keys est par défaut faux .

Exemple 2: Gardez le nom de clé d'origine

 $fruits = ['a' => 'apple', 'b' => 'banana', 'c' => 'orange', 'd' => 'grape'];
$sliced = array_slice($fruits, 1, 2, true);
print_r($sliced);

Sortir:

 Array
(
    [b] => banana
    [c] => orange
)

Ici, nous définissons Preserve_Keys sur true , de sorte que les noms de clés de la matrice d'origine sont conservés.

Exemple 3: décalage négatif

 $numbers = [10, 20, 30, 40, 50];
$sliced = array_slice($numbers, -3, 2);
print_r($sliced);

Sortir:

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

Utilisez un décalage négatif pour intercepter 2 à partir du troisième dernier élément à la fin du tableau.

Application pratique: traitement de la pagination

Supposons que nous lisons un tableau contenant plusieurs titres d'articles de la base de données, et maintenant nous devons implémenter le paginage, montrant 5 éléments de données par page:

 $articles = [
    'article1', 'article2', 'article3', 'article4', 'article5',
    'article6', 'article7', 'article8', 'article9', 'article10',
    'article11', 'article12'
];

$page = isset($_GET['page']) ? (int)$_GET['page'] : 1;
$pageSize = 5;
$offset = ($page - 1) * $pageSize;

$pagedArticles = array_slice($articles, $offset, $pageSize);

foreach ($pagedArticles as $article) {
    echo "<p>$article</p>";
}

// Exemple de lien de pagination
echo '<a href="https://gitbox.net/articles.php?page=1">première page</a> ';
echo '<a href="https://gitbox.net/articles.php?page=2">1 et 12Page</a> ';
echo '<a href="https://gitbox.net/articles.php?page=3">1 et 13Page</a>';

Le code ci-dessus montre comment utiliser array_slice () combiné avec un paramètre $ _get pour implémenter une fonction de pagination simple et générer des liens de pagination. Notez que l'URL ici utilise le nom de domaine gitbox.net .

résumé

Array_slice () est un outil indispensable pour gérer les opérations d'interception du tableau. Il est flexible, efficace et simple à utiliser. En utilisant rationnellement les paramètres de décalage, de longueur et de préserve_keys, nous pouvons rapidement obtenir le sous-ensemble de tableaux requis en fonction de différents scénarios. Que ce soit dans la pagination de données, la liste d'affichage ou le filtrage des données, array_slice () peut afficher ses compétences.