婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > PHP 實現(xiàn)數(shù)組分頁

PHP 實現(xiàn)數(shù)組分頁

熱門標簽:400電話個人能不能辦理 銀行信貸電話機器人 天津電銷外呼系統(tǒng)違法嗎 溫州外呼系統(tǒng)招商 手機外呼系統(tǒng)什么原理 凱立德地鐵站地圖標注 合肥ai電銷機器人費用 上海400客服電話怎么申請 滄州電銷外呼系統(tǒng)價格

今天,我們就來學習一下可以實現(xiàn)這個能力的一些函數(shù)技巧。

首先,我們還是準備好測試數(shù)據(jù)。

$data = [
    'A',
    'B',
    'C',
    'D',
    'E',
    'F',
    'G',
    'H',
    'I',
    'J',
    'K',
];

// $p = $_GET['p'];
$p = 2;
$currentPage = $p = 1 ? 0 : $p - 1;
$pageSize = 3;
$offset = $currentPage * $pageSize;

假設 \$data 就是從數(shù)據(jù)庫中取出的全部數(shù)據(jù),或者就是我們寫死在 PHP 代碼中的數(shù)據(jù)。然后我們設定 $p 為接收到的請求參數(shù),當前訪問的是第二頁。$currentPage 是用于查詢偏移量的修正,在代碼開發(fā)的世界中,下標索引都是從0開始的,所以我們需要對接收到的參數(shù)進行減一的操作。當然,你也可以設定前端傳遞的參數(shù)就是以 0 為第一頁的。這個就不多解釋了,相信大家只要正式的學習或者參與過開發(fā)項目都會明白它的意思。

然后我們定義了當前頁面所顯示的信息條數(shù) $pageSize ,也就是只獲取 3 條數(shù)據(jù)。最后,我們計算了一下偏移量,也就是類似于 MySQL 的 LIMIT 中的那個參數(shù)。它的作用就是告訴我們從第幾條開始查詢,然后配合 $pageSize 查詢幾條。這樣我們就可以獲得當前頁面對應的數(shù)據(jù)了。(貌似把分頁的原理都講了一下)

array_slice

第一個也是最基礎和最常見的分頁方式,就是使用 array_slice() 函數(shù)來實現(xiàn)。它的作用是從數(shù)組中截取出一段內(nèi)容來并返回這段內(nèi)容的數(shù)組。

var_dump(array_slice($data, $offset, $pageSize));
// array(3) {
//     [0]=>
//     string(1) "D"
//     [1]=>
//     string(1) "E"
//     [2]=>
//     string(1) "F"
//   }

array_slice() 函數(shù)需要三個參數(shù),第二個參數(shù)就是偏移量,第三個參數(shù)是查詢幾條數(shù)據(jù)。其中,第三個參數(shù)是可選的,不填的話就會把當前設定的偏移量之后的數(shù)據(jù)全部顯示出來。是不是和我們的 MySQL 查詢語句一模一樣。沒錯,他們本身就是類似的操作。

array_chunk

array_chunk() 函數(shù)則是根據(jù)一個數(shù)值參數(shù)將一個數(shù)組進行分組,也就是將數(shù)組分割成一段一段的子數(shù)組。我們就可以根據(jù)分割后的數(shù)組來獲取指定下標的子數(shù)組內(nèi)容,這些內(nèi)容就是當前的頁面需要展示的數(shù)據(jù)了。

$pages = array_chunk($data, $pageSize);
var_dump($pages);
// array(4) {
//     [0]=>
//     array(3) {
//       [0]=>
//       string(1) "A"
//       [1]=>
//       string(1) "B"
//       [2]=>
//       string(1) "C"
//     }
//     [1]=>
//     array(3) {
//       [0]=>
//       string(1) "D"
//       [1]=>
//       string(1) "E"
//       [2]=>
//       string(1) "F"
//     }
//     [2]=>
//     array(3) {
//       [0]=>
//       string(1) "G"
//       [1]=>
//       string(1) "H"
//       [2]=>
//       string(1) "I"
//     }
//     [3]=>
//     array(2) {
//       [0]=>
//       string(1) "J"
//       [1]=>
//       string(1) "K"
//     }
//   }

var_dump($pages[$currentPage]);
// array(3) {
//     [0]=>
//     string(1) "A"
//     [1]=>
//     string(1) "B"
//     [2]=>
//     string(1) "C"
//   }

這段代碼我們輸出了分割后的數(shù)組內(nèi)容,然后需要的是第二頁也就是下標為 1 的數(shù)據(jù),直接通過分割后的數(shù)組就可以方便地獲取到所需要的內(nèi)容了。使用這個函數(shù)來做數(shù)組分頁的功能非常地簡單直觀,而且它不需要去計算偏移量,直接就是使用當前頁 $currentPage 和 $pageSize 就可以完成對于數(shù)據(jù)的分組了,非常推薦大家使用這個函數(shù)來進行類似的操作。

LimitIterator

最后我們要學習到的是使用一個迭代器類來實現(xiàn)數(shù)組分頁的能力,這個使用的就比較少了,估計都沒什么人知道,但其實 LimitIterator 類在 PHP5.1 時就已經(jīng)提供了。它的作用是允許遍歷一個 Iterator 的限定子集的元素。也就是說,如果我們的代碼中使用了迭代器模式,實現(xiàn)了迭代器接口,那么這些迭代器類都可以使用這個類進行分頁操作。

foreach (new LimitIterator(new ArrayIterator($data), $offset, $pageSize) as $d) {
    var_dump($d);
}
// string(1) "D"
// string(1) "E"
// string(1) "F"

它需要的實例化構造參數(shù)包含3個,第一個是一個迭代器對象,由于數(shù)組不是迭代器對象,所以我們使用 ArrayIterator 實例將我們的數(shù)組數(shù)據(jù)轉化為一個迭代器對象。后面兩個參數(shù)就是偏移量和數(shù)據(jù)數(shù)量了,這個和 array_slice() 函數(shù)是類似的,不過不同的是,它的偏移量參數(shù)也是可以選的。如果我們不給后面的可選參數(shù)的話,那么它將遍歷所有的數(shù)據(jù)。

foreach (new LimitIterator(new ArrayIterator($data)) as $d) {
    var_dump($d);
}
// string(1) "A"
// string(1) "B"
// string(1) "C"
// string(1) "D"
// string(1) "E"
// string(1) "F"
// string(1) "G"
// string(1) "H"
// string(1) "I"
// string(1) "J"
// string(1) "K"

參數(shù)錯誤時的表現(xiàn)

接下來,我們看看如果參數(shù)錯誤,也就是偏移量或者所需的數(shù)據(jù)量大小有問題的話,這些操作將會有什么樣的表現(xiàn)。

var_dump(array_slice($data, $offset, 150));
// array(8) {
//     [0]=>
//     string(1) "D"
//     [1]=>
//     string(1) "E"
//     [2]=>
//     string(1) "F"
//     [3]=>
//     string(1) "G"
//     [4]=>
//     string(1) "H"
//     [5]=>
//     string(1) "I"
//     [6]=>
//     string(1) "J"
//     [7]=>
//     string(1) "K"
//   }
var_dump(array_slice($data, 15, $pageSize));
// array(0) {
// }

array_slice() 函數(shù)對于偏移量錯誤的兼容就是展示一個空的數(shù)組。而數(shù)據(jù)量超標的話則會展示所有偏移量之后的數(shù)據(jù)。

var_dump($pages[15]);
// NULL

array_chunk() 對于下標不存在的數(shù)據(jù)當然就是返回一個 NULL 值啦。

foreach (new LimitIterator(new ArrayIterator($data), $offset, 150) as $d) {
    var_dump($d);
}
// string(1) "D"
// string(1) "E"
// string(1) "F"
// string(1) "G"
// string(1) "H"
// string(1) "I"
// string(1) "J"
// string(1) "K"

foreach (new LimitIterator(new ArrayIterator($data), 15, $pageSize) as $d) {
    var_dump($d);
}
// Fatal error: Uncaught OutOfBoundsException: Seek position 15 is out of range

LimitIterator 則是對于偏移量錯誤的數(shù)據(jù)直接返回錯誤異常信息了。這也是類模式處理的好處,有錯誤都會以異常的形式進行返回,方便我們對異常進行后續(xù)的處理。

其它的測試大家還可以自行檢測,比如偏移是 0 或者是負數(shù)的情況,數(shù)據(jù)量是 0 或者是負數(shù)的情況。這些我就不多寫了,大家可以根據(jù)已有的知識先猜想一下結果會是什么樣的,然后再自己寫代碼驗證一下結果是符合自己的預期,這樣學習的效果會非常棒哦!(在下方測試代碼鏈接中有測試,結果里面是有坑的哦)

總結

一個功能使用了三種方式來實現(xiàn),這就是代碼的魅力。至于哪個好哪個壞我們不多做評價,一切都是以業(yè)務為核心來進行選取。類似的功能雖說并不常見,但很多項目里都會遇到,比如說后臺用戶組管理就會非常常見,一般來說后臺用戶分組如果不是特別大型的 ERP 項目都不會很多,但有時候也會達到需要分頁的程度,這時候,我們就可以考慮考慮使用今天所學的知識來做咯!

測試代碼

以上就是PHP 實現(xiàn)數(shù)組分頁的詳細內(nèi)容,更多關于PHP 數(shù)組分頁的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • PHP中的數(shù)組分頁實現(xiàn)(非數(shù)據(jù)庫)實例講解
  • PHP二維數(shù)組分頁2種實現(xiàn)方法解析
  • PHP實現(xiàn)對數(shù)組分頁處理實例詳解
  • php數(shù)組分頁實現(xiàn)方法
  • php簡單實現(xiàn)數(shù)組分頁的方法
  • PHP基于數(shù)組實現(xiàn)的分頁函數(shù)實例
  • thinkphp實現(xiàn)數(shù)組分頁示例

標簽:金華 洛陽 溫州 赤峰 七臺河 酒泉 白城 怒江

巨人網(wǎng)絡通訊聲明:本文標題《PHP 實現(xiàn)數(shù)組分頁》,本文關鍵詞  PHP,實現(xiàn),數(shù)組,分頁,PHP,實現(xiàn),;如發(fā)現(xiàn)本文內(nèi)容存在版權問題,煩請?zhí)峁┫嚓P信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《PHP 實現(xiàn)數(shù)組分頁》相關的同類信息!
  • 本頁收集關于PHP 實現(xiàn)數(shù)組分頁的相關信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    成a人片亚洲日本久久| 日本欧美一区二区三区| 中文字幕免费不卡| 三级一区在线视频先锋| 91精品在线观看入口| 欧美高清在线视频| 久久亚洲精精品中文字幕早川悠里 | 激情图片小说一区| 欧美中文字幕亚洲一区二区va在线| 久久亚洲一级片| 裸体一区二区三区| 国产成人午夜精品5599| 91九色02白丝porn| 日韩一区和二区| 日韩码欧中文字| 麻豆成人免费电影| 国产精品系列在线观看| 日韩一级视频免费观看在线| 亚洲色图欧美在线| 精品污污网站免费看| 亚洲一区影音先锋| 制服.丝袜.亚洲.另类.中文| 亚洲综合视频在线观看| 亚洲桃色在线一区| 处破女av一区二区| 欧美成人video| 亚洲一区精品在线| 日韩一区二区电影| 高清不卡一区二区| 亚洲综合自拍偷拍| 精品毛片乱码1区2区3区| 99久久99久久免费精品蜜臀| 日本一区中文字幕| 精品无人码麻豆乱码1区2区| 精品国产露脸精彩对白| 精品久久久久久久久久久久久久久久久 | 26uuu色噜噜精品一区二区| 91视频.com| 成人午夜电影小说| 激情综合色播激情啊| 亚洲va天堂va国产va久| 亚洲欧美激情插| 国产日韩欧美麻豆| www久久精品| 91国偷自产一区二区三区观看| 久久亚洲综合av| 欧美在线看片a免费观看| 成人美女视频在线看| 老司机免费视频一区二区| 午夜一区二区三区在线观看| 亚洲一区自拍偷拍| 亚洲欧洲精品一区二区三区| 欧美一区二区精品在线| 欧美在线free| 91国产视频在线观看| 成人av资源在线| 91视频观看免费| 色综合久久天天| 91麻豆自制传媒国产之光| 国产aⅴ综合色| 欧美主播一区二区三区| 欧美久久久久久久久中文字幕| 色综合天天综合网国产成人综合天 | 久久国产精品99久久人人澡| 久久国产精品99久久久久久老狼| 91麻豆.com| 欧美色综合久久| 国产精品白丝在线| 国产一区二区免费视频| 在线播放/欧美激情| 亚洲无人区一区| 91黄色激情网站| 日韩伦理免费电影| 欧美精品亚洲二区| 久久精品国产亚洲一区二区三区| 亚洲精品高清在线| 国产成a人亚洲精| 国产精品一区二区在线播放| 精久久久久久久久久久| 国产不卡视频在线播放| 激情文学综合网| 91热门视频在线观看| 麻豆久久久久久| 亚洲综合丝袜美腿| 中文字幕电影一区| 日韩免费一区二区| 91成人在线精品| 成人av网站在线观看| 爽爽淫人综合网网站| 亚洲日本一区二区| 国产欧美日韩在线| 国产精品资源站在线| 欧美成人激情免费网| 奇米精品一区二区三区在线观看| 欧美网站大全在线观看| 性久久久久久久久久久久| 欧美日韩在线三区| 午夜精品福利一区二区三区av| 国产传媒久久文化传媒| 26uuu精品一区二区| 成人性视频免费网站| 亚洲麻豆国产自偷在线| 成人av免费在线| 中文字幕欧美日本乱码一线二线| 美女一区二区在线观看| 免费在线观看成人| 欧美xxx久久| 国产精一区二区三区| 国产亚洲一区二区在线观看| 国产风韵犹存在线视精品| 日本一区二区三区四区| 欧美伊人精品成人久久综合97 | 欧美国产成人精品| 91高清视频免费看| 国产精品亚洲а∨天堂免在线| 亚洲另类色综合网站| 久久老女人爱爱| 欧美日韩国产一区二区三区地区| 国产酒店精品激情| 午夜婷婷国产麻豆精品| 一区二区三区.www| 欧美主播一区二区三区美女| 欧美日韩在线一区二区| 在线免费不卡电影| 欧美日韩一卡二卡三卡| 欧美剧情电影在线观看完整版免费励志电影 | 99精品视频在线观看| 国产精品自拍网站| 国产91在线观看丝袜| 国产美女在线观看一区| 激情久久五月天| 国产91清纯白嫩初高中在线观看| 粉嫩久久99精品久久久久久夜| 国产福利精品一区| 成人午夜免费电影| 欧美日韩精品综合在线| 日韩视频在线观看一区二区| 日韩欧美不卡在线观看视频| 久久免费看少妇高潮| 国产精品久久久爽爽爽麻豆色哟哟| 国产精品成人一区二区艾草| 天天综合色天天综合| 精品一区二区三区在线播放视频| 成人夜色视频网站在线观看| 欧美日韩aaaaa| 国产欧美一区二区精品忘忧草| 亚洲激情成人在线| 成人动漫视频在线| 欧美男女性生活在线直播观看| 精品国产91乱码一区二区三区| 亚洲九九爱视频| 极品少妇一区二区三区精品视频| 99久久精品费精品国产一区二区| 日韩欧美在线网站| 亚洲综合色自拍一区| av一区二区三区在线| 亚洲国产成人午夜在线一区 | 欧美日韩二区三区| 国产偷v国产偷v亚洲高清| 亚洲男人的天堂在线aⅴ视频 | 国产精品妹子av| 极品少妇xxxx偷拍精品少妇| 91精彩视频在线| 亚洲黄色av一区| 色域天天综合网| 亚洲影院理伦片| 8v天堂国产在线一区二区| 国产激情91久久精品导航 | 不卡一区中文字幕| 亚洲国产日韩a在线播放性色| 欧美一区二区三区精品| 精品国产伦理网| 日韩欧美国产一二三区| 高清av一区二区| 91丨porny丨蝌蚪视频| 色综合天天综合给合国产| 亚洲成av人片一区二区梦乃| 中文字幕va一区二区三区| 欧美日韩一区二区电影| 国产黄色精品视频| 美女被吸乳得到大胸91| 欧美一卡2卡三卡4卡5免费| 国产91清纯白嫩初高中在线观看| www.欧美日韩国产在线| 麻豆精品精品国产自在97香蕉| 99久久精品国产毛片| 色欧美乱欧美15图片| 亚洲第一会所有码转帖| 久久久精品tv| 日韩免费性生活视频播放| 在线观看一区二区精品视频| 国产精品中文有码| 日韩电影在线免费观看| 亚洲一区二区视频| 中文字幕一区二区三中文字幕| 精品国产凹凸成av人导航| 欧美一区二区女人| 日韩欧美成人激情| 日韩亚洲欧美中文三级| 欧美日韩精品三区|