記錄一下PHP數組資料分頁的方法_PHP教程

來源:互聯網
上載者:User
我們的資料未必都是儲存在資料庫中,很多時候是用數組來組織的。所以擷取數組資料,進行分頁是比較常見的編程要求。分頁的原理很簡單,就是按分頁數擷取某個範圍的資料而已,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:

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

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

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

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

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

例子 4(帶有字串鍵):

"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird");print_r(array_slice($a,1,2));// Array ( [b] => Cat [c] => Horse )?>

http://www.bkjia.com/PHPjc/752350.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/752350.htmlTechArticle我們的資料未必都是儲存在資料庫中,很多時候是用數組來組織的。所以擷取數組資料,進行分頁是比較常見的編程要求。分頁的原理很簡...

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.