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

WBOY
Release: 2016-07-13 10:34:05
Original
924 people have browsed it

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);
	} 
Copy after login

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'));
Copy after login

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)

ParameterDescription
arrayRequired. 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 )
?>
Copy after login
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 )
?>
Copy after login
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 )
?>
Copy after login
  • 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 )
?>
Copy after login
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...
Related labels:
source:php.cn
Statement of this Website
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
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template