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