Maison php教程 php手册 3行代码的分页算法(求起始页和结束页)

3行代码的分页算法(求起始页和结束页)

Jun 21, 2016 am 08:52 AM
count end link start

 

  涉及到分页时, 除非只显示上一页/下一页, 否则需要计算起始页和结束页. 看过很多代码都是用大量的if-else来实现, 代码量大, 又不简洁. 现在提供一种只需要3行代码的算法.

  一个好的分页算法, 应该具有下面的优点:

  当前页码应该尽量在正中间.

  如果”首页”和”尾页”不可用(当前处于第一页或最后一页), 不要隐藏这两组文字, 以免链接按钮位置变动.

  算法简单.

  下面的算法具有前面1和3两个优点.

  PHP:

  // $curr_index, 当前页码.

  // $link_count, 链接数量.

  // $page_count, 当前的数据的总页数.

  // $start, 显示时的起始页码.

  // $end, 显示时的终止页码.

  $start = max(1, $curr_index - intval($link_count/2));

  $end = min($start + $link_count - 1, $page_count);

  $start = max(1, $end - $link_count + 1);

  JavaScript:

  start = Math.max(1, curr_index - parseInt(link_count/2));

  end = Math.min(page_count, start + link_count - 1);

  start = Math.max(1, end - link_count + 1);



Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Quelle touche est la touche de fin du clavier ? Quelle touche est la touche de fin du clavier ? Mar 10, 2023 am 11:30 AM

La fin du clavier est la touche qui affiche le mot « Fin » sur le clavier ; lors de l'édition d'un texte, si le curseur n'est pas à la fin, appuyez sur la touche FIN, et le curseur sera positionné à la fin s'il s'agit d'un document ; , appuyez sur la combinaison "CTRL+FIN". Après avoir appuyé sur la touche , le curseur se positionnera à la fin du document.

Que dois-je faire si Docker Start ne peut pas démarrer ? Que dois-je faire si Docker Start ne peut pas démarrer ? Oct 21, 2022 pm 03:43 PM

Solution à l'échec du démarrage du docker : 1. Vérifiez l'état d'exécution, puis libérez la mémoire occupée via la commande "echo 3 > /proc/sys/vm/drop_caches" ; 2. Utilisez "$netstat -nltp|grep .. . " pour vérifier si le port a été occupé. S'il s'avère occupé après la mise en ligne, remplacez-le par un port disponible, puis redémarrez.

La différence entre counta et count La différence entre counta et count Nov 20, 2023 am 10:01 AM

La fonction Count est utilisée pour compter le nombre de nombres dans une plage spécifiée. Elle ignore le texte, les valeurs logiques et les valeurs nulles, mais compte les cellules vides. La fonction Count ne compte que le nombre de cellules contenant des nombres réels. La fonction CountA est utilisée pour compter le nombre de cellules non vides dans une plage spécifiée. Il compte non seulement les cellules contenant des nombres réels, mais également le nombre de cellules non vides contenant du texte, des valeurs logiques et des formules.

Que faire si le démarrage du nœud signale une erreur Que faire si le démarrage du nœud signale une erreur Dec 29, 2022 pm 01:55 PM

Solution à l'erreur de démarrage du nœud : 1. Exécutez "node xx.js" directement dans le terminal ; 2. Ajoutez l'élément de démarrage "scripts": {"test": "echo \"Erreur : aucun test spécifié\" && exit 1 » ,"start": "node service.js"}"; 3. Réexécutez "npm start".

La différence entre lien et importation est expliquée en détail : quelles sont les différences entre eux ? La différence entre lien et importation est expliquée en détail : quelles sont les différences entre eux ? Jan 06, 2024 am 08:19 AM

Analyse approfondie : quelle est la différence entre un lien et une importation ? Lors du développement de pages Web ou d'applications, nous devons souvent introduire des fichiers CSS externes ou des bibliothèques JavaScript pour améliorer ou personnaliser notre code. Dans ce processus, le lien et l'importation sont deux méthodes couramment utilisées. Bien que leur objectif soit d’introduire des ressources externes, il existe certaines différences dans leur utilisation spécifique. Syntaxe et emplacement : lien : utilisez la balise de lien pour lier des ressources externes dans le fichier HTML, généralement situé en tête du document HTML.

Quelle est la différence entre la balise de lien et l'importation ? Quelle est la différence entre la balise de lien et l'importation ? Aug 28, 2023 am 11:19 AM

Les différences entre les balises de lien et l'importation incluent la syntaxe et l'utilisation, les fonctions et fonctionnalités, le temps de chargement, la compatibilité et la prise en charge, etc. Introduction détaillée : 1. Syntaxe et utilisation La balise link est une balise HTML, utilisée pour introduire des ressources externes dans les documents HTML, telles que des feuilles de style CSS, des scripts JavaScript, des icônes, etc. import est la syntaxe d'importation du module dans ES6, utilisée dans Fichiers JavaScript. Introduire des modules externes ; 2. Fonctions et fonctionnalités La balise de lien peut introduire une variété de ressources, telles que des feuilles de style CSS, des icônes, etc.

La différence entre une balise de lien et une balise La différence entre une balise de lien et une balise Feb 19, 2024 pm 06:16 PM

La balise link et la balise a sont deux balises couramment utilisées en HTML. Elles ont des fonctions et des usages différents. balise de lien La balise de lien est principalement utilisée pour introduire des ressources externes dans des documents HTML. Elle est généralement utilisée pour introduire des feuilles de style externes (fichiers CSS). Elle peut également être utilisée pour introduire d'autres types de fichiers, tels que des fichiers image, des fichiers audio, etc. etc. La balise de lien est située à l'intérieur de la balise, généralement écrite après d'autres métadonnées (telles que des balises). Format grammatical de base de la balise de lien

Comparaison du lien et de l'importation : quelles sont leurs différences ? Comparaison du lien et de l'importation : quelles sont leurs différences ? Jan 06, 2024 pm 08:23 PM

Le débat entre lien et importation : quelle est la différence ? En développement et en programmation, nous avons souvent besoin d'interagir avec d'autres fichiers ou modules. Afin de réaliser cette interaction, la liaison et l’importation sont deux méthodes couramment utilisées. Cependant, de nombreuses personnes ne connaissent peut-être pas la différence entre un lien et une importation ni quand les utiliser. Cet article présentera en détail la différence entre lien et importation et fournira des exemples de code. Tout d’abord, comprenons le concept de lien. Lien

See all articles