Maison >développement back-end >tutoriel php >Comment paginer un tableau à deux dimensions en php (avec code)

Comment paginer un tableau à deux dimensions en php (avec code)

不言
不言avant
2018-11-14 17:08:014502parcourir

Le contenu de cet article explique comment paginer des tableaux bidimensionnels en PHP (avec du code). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.

Page un tableau bidimensionnel. Supposons que chaque page affiche 10 éléments. La pagination d'une liste est généralement vérifiée à partir de la base de données, puis rendue dans la liste. La pagination ici consiste à vérifier la base de données. Lors de la vérification, seul le nombre d'éléments par page est vérifié. S'il y a dix éléments sur chaque page, seuls dix éléments sont vérifiés. Cependant, ce tableau bidimensionnel n'est pas trouvé dans la base de données. , mais toutes les données sont stockées dans ce tableau depuis le début. Pour afficher une liste, comment paginer ? Il existe un moyen stupide de sélectionner dix tableaux à un chiffre dans ce tableau à deux chiffres via des indices et de les réassembler. un tableau à deux chiffres Supposons un tableau bidimensionnel comme suit, pour chaque page, 10 éléments peuvent afficher deux pages, donc 12 éléments de données ont été créés

$arr = array(
				array('name'=>'第一页张三1','mobile'=>'111111111'),
                array('name'=>'第一页李四1','mobile'=>'222222222'),
                array('name'=>'第一页王五1','mobile'=>'333333332'),
                array('name'=>'第一页李四2','mobile'=>'444444444'),
                array('name'=>'第一页张三2','mobile'=>'555555555'),
                array('name'=>'第一页王五2','mobile'=>'666666666'),
                array('name'=>'第一页张三3','mobile'=>'777777777'),
                array('name'=>'第一页李四3','mobile'=>'888888888'),
                array('name'=>'第一页王五3','mobile'=>'999999999'),
                array('name'=>'第一页李四4','mobile'=>'123456789'),
                array('name'=>'第二页张三4','mobile'=>'987654321'),
                array('name'=>'第二页王五4','mobile'=>'112233445'),
			);

			//前端传过来的页数,第几页
			$p = I('p');
			if (empty($p)){
				$p = 1;
			}

			//开始取值的下标,数组下标是从0开始的,例如第一页从下标为0开始取,第二页从下标为10开始取
			$start = ($p-1)*10;

			//根据开始的下标,和需要取的数据的条数(每页显示的条数)循环赋值给新数组
			for ($i=$start;$i<$start+10;$i++){
				if (!empty($arr[$i])){
					$new_arr[$i] = $arr[$i];
				}
			}

            dump($new_arr);

Imprimez le résultat. :

Encapsulez-le :

public function arr_page($arr,$p,$count){
        if (empty($p)){
            $p = 1;
        }

        if (empty($count)){
        	$count = 10;
		}

        $start = ($p-1)*$count;
        for ($i=$start;$i<$start+$count;$i++){
            if (!empty($arr[$i])){
                $new_arr[$i] = $arr[$i];
            }
        }

        return $new_arr;
	}

Appel : Le résultat imprimé est le même

 $new_arr = $this->arr_page($arr,1,10);

 dump($new_arr);

Vous pouvez également transmettre d'autres valeurs lors de l'appel des paramètres, pas nécessairement dix éléments par page,

$new_arr = $this->arr_page($arr,1,5);
$new_arr = $this->arr_page($arr,2,5);

Quant au nombre de pages, juste utilisez count ($ arr) divisé par le nombre d'éléments par page. S'il y a des décimales, ajoutez 1 pour pouvoir paginer

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer