Position actuelle: Accueil> Derniers articles> Utilisez Array_slice pour implémenter le coup de données de carrousel de diapositive

Utilisez Array_slice pour implémenter le coup de données de carrousel de diapositive

gitbox 2025-06-06

Lors de la construction de composants de carrousel à glissières, nous devons souvent paginer un ensemble d'images ou de contenu. Par exemple, il existe un ensemble de données d'image. Nous espérons afficher 3 images dans chaque carrousel, puis afficher les 3 prochaines images, etc. Ce type d'opération de découpage de données peut être facilement implémenté dans PHP via la fonction Array_Slice .

1. Introduction à array_slice

Array_slice est une fonction de traitement du tableau fournie par PHP, qui est utilisée pour extraire un sous-tableau d'un tableau sans modifier le contenu du tableau d'origine.

La syntaxe est la suivante:

 array_slice(array $array, int $offset, ?int $length = null, bool $preserve_keys = false): array
  • $ Array : Le tableau d'origine pour effectuer des opérations.

  • $ Offset : la position de départ extraite du tableau (index, à partir de 0).

  • $ Longueur : le nombre d'éléments à extraire.

  • $ Preserve_keys : s'il faut préserver le nom clé du tableau d'origine (la valeur par défaut est de reconstruire l'index).

2. Scénario d'application pratique: Slice de carrousel à glissière

Supposons que nous ayons le tableau d'images suivant, prêt à être affiché dans le diaporama:

 $slides = [
    'https://gitbox.net/images/slide1.jpg',
    'https://gitbox.net/images/slide2.jpg',
    'https://gitbox.net/images/slide3.jpg',
    'https://gitbox.net/images/slide4.jpg',
    'https://gitbox.net/images/slide5.jpg',
    'https://gitbox.net/images/slide6.jpg',
    'https://gitbox.net/images/slide7.jpg',
];

Nous espérons que chaque groupe de carrousels affichera 3 images, qui peuvent être tranchées comme ceci:

 $groupSize = 3;
$totalSlides = count($slides);
$totalGroups = ceil($totalSlides / $groupSize);

for ($i = 0; $i < $totalGroups; $i++) {
    $offset = $i * $groupSize;
    $slideGroup = array_slice($slides, $offset, $groupSize);
    
    echo "1 et 1 " . ($i + 1) . " Diaporama de groupe:<br>";
    foreach ($slideGroup as $slide) {
        echo "<img src=\"$slide\" style=\"width:200px;height:auto;margin:5px;\">";
    }
    echo "<hr>";
}

3. Description de l'effet

  • CEIL ($ TotalSides / $ GroupSize) calcule le nombre de groupes nécessaires au total.

  • Chaque fois, un ensemble de photos est tiré du tableau d'origine via array_slice .

  • Utiliser pour Loop pour implémenter la sortie de la pagination, adapté au rendu de page statique ou à la sortie du modèle côté serveur.

4. Coopérer avec les composants du carrousel frontal

Le résultat de sortie de l'array_slice peut être encapsulé en JSON et remis aux composants frontaux tels que le glissement et la glissière pour charger dynamiquement:

 // Supposons que ce soit API retour
$offset = isset($_GET['page']) ? (int)$_GET['page'] * $groupSize : 0;
$currentGroup = array_slice($slides, $offset, $groupSize);

header('Content-Type: application/json');
echo json_encode($currentGroup);

De cette façon, le frontal peut obtenir les données de la page correspondante en demandant de manière asynchrone https://gitbox.net/api/slides.php?page=1 pour obtenir un effet de carrousel dynamique.

5. Résumé

Array_slice est un outil puissant pour traiter la pagination de données et l'affichage de regroupement. Pour les besoins du carrousel de diapositive, Array_Slice peut être utilisé pour couper facilement des tableaux unidimensionnels à la demande, et une expérience utilisateur fluide peut être obtenue avec des composants frontaux. En plus des images, tout tableau unidimensionnel (tel que les listes d'articles et les listes de produits) peut être traité de manière similaire pour améliorer la réutilisabilité et la flexibilité du code.