程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> PHP綜合 >> PHP數組對象分頁方法

PHP數組對象分頁方法

編輯:PHP綜合

最近做項目用到了分頁的功能,在網上看了很多的PHP數組分頁的帖子,覺得有些不錯!所以拿來分享一下,學習學習。

我們的數據未必都是存儲在數據庫中,很多時候是用數組來組織的。所以獲取數組數據,進行分頁是比較常見的編程要求。分頁的原理很簡單,就是按分頁數獲取某個范圍的數據而已,PHP給我們提供了一個很便利的函數:array_slice()。array_slice() 函數在數組中根據條件取出一段值,並返回。

例如:

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);
}
$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() 函數

array_slice() 函數在數組中根據條件取出一段值,並返回。如果數組有字符串鍵,所返回的數組將保留鍵名。

語法:array_slice(array,offset,length,preserve)

參數描述array必需。規定輸入的數組。offset

必需。數值。規定取出元素的開始位置。

如果是正數,則從前往後開始取,如果是負值,從後向前取 offset 絕對值。

length

可選。數值。規定被返回數組的長度。

如果是負數,則從後向前,選取該值絕對值數目的元素。如果未設置該值,則返回所有元素。

preserve

可選。可能的值:

true - 保留鍵

false - 默認 - 重置鍵

例子 1:

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2));
// Array ( [0] => Cat [1] => Horse )
?>

例子 2(帶有負的 offset 參數):

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,-2,1));
// Array ( [0] => Horse )
?>

例子 3(preserve 參數設置為 true):

<?php
$a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
print_r(array_slice($a,1,2,true));
// Array ( [1] => Cat [2] => Horse )
?>

例子 4(帶有字符串鍵):

<?php
$a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird");
print_r(array_slice($a,1,2));
// Array ( [b] => Cat [c] => Horse )
?>
*
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved