Der Inhalt dieses Artikels befasst sich mit der Paginierung zweidimensionaler Arrays in PHP (mit Code). Ich hoffe, dass er für Freunde hilfreich ist.
Angenommen, dass auf jeder Seite 10 Elemente angezeigt werden. Die Paginierung einer Liste wird normalerweise als zweidimensionales Array ermittelt und dann in die Liste gerendert. Das Paging dient hier der Überprüfung der Datenbank. Bei der Überprüfung wird nur die Anzahl der Elemente pro Seite überprüft. Dieses zweidimensionale Array wird jedoch nicht in der Datenbank gefunden , aber alle Daten werden von Anfang an in diesem Array gespeichert. Wie kann man durch Indizes eine Liste erstellen, indem man zehn einstellige Arrays aus diesem zweistelligen Array durch Indizes auswählt und wieder zusammensetzt? ein zweistelliges Array. Nehmen Sie ein zweidimensionales Array wie folgt an: Für jede Seite können 10 Elemente zwei Seiten anzeigen, sodass 12 Datenelemente erstellt wurden
$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);
Ergebnis drucken:
Kapseln Sie es:
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; }
Aufruf: Das gedruckte Ergebnis ist das gleiche
$new_arr = $this->arr_page($arr,1,10); dump($new_arr);
Sie können beim Aufruf auch andere Parameter übergeben, nicht unbedingt jede Seite. Zehn Elemente,
$new_arr = $this->arr_page($arr,1,5); $new_arr = $this->arr_page($arr,2,5);
Wie viele Seiten es gibt, verwenden Sie einfach count($arr) und teilen Sie es durch Anzahl der Elemente pro Seite. Wenn es Dezimalstellen gibt, addieren Sie 1, damit Sie paginieren können
Das obige ist der detaillierte Inhalt vonSo paginieren Sie ein zweidimensionales Array in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!