Position actuelle: Accueil> Derniers articles> Utilisez Array_slice pour implémenter la classification des articles et la page dans CMS

Utilisez Array_slice pour implémenter la classification des articles et la page dans CMS

gitbox 2025-05-26

1. Brève description du principe de la pagination

Supposons que nous ayons un tableau contenant tous les articles dans une certaine catégorie. Le cœur de la pagination est d'intercepter le fragment de données correspondant à partir du tableau en fonction du numéro de page actuel et du nombre de pièces affichées sur chaque page.

Les paramètres de pagination comprennent généralement:

  • $ Page : numéro de page actuel

  • $ pagesize : nombre d'articles affichés par page

  • $ Offset : Offset, calculé comme ($ Page - 1) * $ PageSize

En utilisant Array_Slice , nous pouvons insérer des articles PageSize $ commençant par $ offset à partir du tableau d'articles pour réaliser une pagination.


2. Exemples de code

Vous trouverez ci-dessous un exemple simple montrant comment implémenter la pagination de la classification des articles à l'aide d'Array_Slice .

 <?php
// Simuler tous les tableaux d&#39;articles dans les catégories
$articles = [
    ['id' => 1, 'title' => 'Article 1', 'category' => 'science et technologie'],
    ['id' => 2, 'title' => 'Article 2', 'category' => 'science et technologie'],
    ['id' => 3, 'title' => 'Article 3', 'category' => 'Vie'],
    ['id' => 4, 'title' => 'Article 4', 'category' => 'science et technologie'],
    ['id' => 5, 'title' => 'Article 5', 'category' => 'Vie'],
    ['id' => 6, 'title' => 'Article 6', 'category' => 'science et technologie'],
    ['id' => 7, 'title' => 'Article 7', 'category' => 'science et technologie'],
];

// Sélectionnez une catégorie
$category = 'science et technologie';

// Filtrer les articles actuels
$categoryArticles = array_filter($articles, function ($article) use ($category) {
    return $article['category'] === $category;
});

// Reconstruire l&#39;index,Facile à utiliser array_slice
$categoryArticles = array_values($categoryArticles);

// Numéro de page actuel,depuis URL Obtenir,Défaut 1 Page
$page = isset($_GET['page']) ? max(1, intval($_GET['page'])) : 1;

// 每Page显示文章数
$pageSize = 3;

// Calculer le décalage
$offset = ($page - 1) * $pageSize;

// 截取当前Page的文章
$currentPageArticles = array_slice($categoryArticles, $offset, $pageSize);

// 输出当前Page文章
foreach ($currentPageArticles as $article) {
    echo "<h3>" . htmlspecialchars($article['title']) . "</h3>";
}
?>

3. Implémentation simple de la navigation de pagination

La pagination doit non seulement afficher le contenu, mais également fournir aux utilisateurs une navigation pour changer de pages. Le nombre total de pages peut être calculé en fonction du nombre total d'articles et des liens paginés peuvent être générés dynamiquement.

 <?php
$totalArticles = count($categoryArticles);
$totalPages = ceil($totalArticles / $pageSize);

for ($i = 1; $i <= $totalPages; $i++) {
    if ($i == $page) {
        echo "<strong>$i</strong> ";
    } else {
        echo "<a href=\"http://gitbox.net/yourcms?page=$i\">$i</a> ";
    }
}
?>

Ici, nous utilisons http://gitbox.net comme nom de domaine, que vous pouvez remplacer en fonction de la situation réelle.


4. Résumé

En utilisant la fonction Array_Slice de PHP, il est très pratique d'implémenter la pagination des données de tableau, qui convient à l'affichage des articles classifiés. La clé consiste à calculer correctement le décalage et à trancher le tableau après filtrage de classification. Couplé à une simple navigation de pagination, il peut répondre aux besoins de la plupart des CMS pour la pagination de la classification des articles.

Cette méthode ne s'appuie pas sur la pagination de la base de données et convient aux scénarios où les données sont petites ou les données ont été préchargées dans un tableau. Pour de grandes quantités de données, il est recommandé d'utiliser une requête de pagination de la base de données pour améliorer l'efficacité.