Home >Backend Development >PHP Tutorial >Record the method of paging array data in PHP_PHP Tutorial
Our data is not necessarily stored in the database, but is often organized using arrays. Therefore, obtaining array data and paging are relatively common programming requirements. The principle of paging is very simple, it is just to obtain a certain range of data according to the number of pages. PHP provides us with a very convenient function: array_slice(). The array_slice() function removes a segment of value from the array based on conditions and returns it.
Here are two paging examples, both of which are simple.
public function books($pagenum = 1) { include_once("page.php"); include("arr_books.php"); foreach ($data['books'] as $key=>$value){ $name[$key] = $value['name']; $rank[$key] = $value['rank']; } array_multisort($rank,SORT_NUMERIC,SORT_DESC,$data['books']); // 倒序 //array_multisort($rank,SORT_NUMERIC,SORT_ASC,$data['books']); // 顺序 $perpage = 10; $count = count($data['books']); $pages = new PageClass($count, $perpage, $pagenum, base_url().'veda/books/{page}/'); $start = ($pagenum - 1) * $perpage; $data['bks'] = array_slice($data['books'], $start, $perpage); $data['nav'] = $pages -> myde_write($pagenum); $this->load->view('header', $data); $this->load->view('books', $data); $this->load->view('footer', $data); }
One more:
$perpage = 2; $page = intval(getgpc('page')) ? intval($_G['gp_page']) : 1; $start = ($page - 1) * $perpage; $count = count($group_list); $list = array_slice($group_list, $start, $perpage); $multipage = multi($count, $perpage, $page, "home.php?mod=space&do=group&type=".getgpc('type'));
The array_slice() function takes out a segment of value from the array based on conditions and returns it. If the array has string keys, the returned array will retain the key names.
Syntax: array_slice(array,offset,length,preserve)
Parameter | Description | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
array | Required. Specifies the input array. | ||||||||||
offset |
If it is a positive number, it will be taken from the front to the back. If it is a negative value, the offset absolute value will be taken from the back to the front. <?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,1,2)); // Array ( [0] => Cat [1] => Horse ) ?> |
||||||||||
length |
Optional. numerical value. Specifies the length of the returned array. <?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,-2,1)); // Array ( [0] => Horse ) ?>If it is a negative number, select the absolute number of elements of the value from back to front. If the value is not set, all elements are returned.
|
||||||||||
preserve | Optional. Possible values: <?php $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird"); print_r(array_slice($a,1,2,true)); // Array ( [1] => Cat [2] => Horse ) ?>
|
Example 1:
<?php $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird"); print_r(array_slice($a,1,2)); // Array ( [b] => Cat [c] => Horse ) ?>Example 2 (with negative offset parameter):
true