Home >Backend Development >PHP Tutorial >Record the method of paging array data in PHP_PHP Tutorial

Record the method of paging array data in PHP_PHP Tutorial

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-07-13 10:34:05970browse

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'));

array_slice() function

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
参数 描述
array 必需。规定输入的数组。
offset

必需。数值。规定取出元素的开始位置。

如果是正数,则从前往后开始取,如果是负值,从后向前取 offset 绝对值。

length

可选。数值。规定被返回数组的长度。

如果是负数,则从后向前,选取该值绝对值数目的元素。如果未设置该值,则返回所有元素。

preserve

可选。可能的值:

  • true - 保留键
  • false - 默认 - 重置键
Required. numerical value. Specifies the starting position of the element to be retrieved.

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 )
?>
  • true - reserved key
  • false - default - reset key

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):

Example 4 (with string keys): http://www.bkjia.com/PHPjc/752350.htmlwww.bkjia.com
true
http: //www.bkjia.com/PHPjc/752350.html
TechArticleOur 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...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn