將一個二維數組分頁,假設每頁顯示10條,一個列表的分頁,一般是從數據庫查出來,查出來是一個二維數組,然后渲染到列表,這里分頁就是查數據庫的時候只查每頁的條數,如果每頁有十條,就只查十條,但是這個二維數組不是從數據庫查出來的呢,而是最開始就把所有的數據存在這個數組里面了,也要渲染到列表,怎么分頁,有一個笨方法,通過下標,從這個二位數組里面通過下標選取十個一位數組,重新組成一個二位數組,假設一個二維數組如下,為了每頁10條能夠顯示兩頁,就做了12條數據
$arr = array( array( name = 第一頁張三1 , mobile = 111111111 ), array( name = 第一頁李四1 , mobile = 222222222 ), array( name = 第一頁王五1 , mobile = 333333332 ), array( name = 第一頁李四2 , mobile = 444444444 ), array( name = 第一頁張三2 , mobile = 555555555 ), array( name = 第一頁王五2 , mobile = 666666666 ), array( name = 第一頁張三3 , mobile = 777777777 ), array( name = 第一頁李四3 , mobile = 888888888 ), array( name = 第一頁王五3 , mobile = 999999999 ), array( name = 第一頁李四4 , mobile = 123456789 ), array( name = 第二頁張三4 , mobile = 987654321 ), array( name = 第二頁王五4 , mobile = 112233445 ), //前端傳過來的頁數,第幾頁 $p = I( p if (empty($p)){ $p = 1; //開始取值的下標,數組下標是從0開始的,例如第一頁從下標為0開始取,第二頁從下標為10開始取 $start = ($p-1)*10; //根據開始的下標,和需要取的數據的條數(每頁顯示的條數)循環賦值給新數組 for ($i=$start;$i $start+10;$i++){ if (!empty($arr[$i])){ $new_arr[$i] = $arr[$i]; dump($new_arr);
打印出來結果:
封裝一下:
html' target='_blank'>public function arr_page($arr,$p,$count){ if (empty($p)){ $p = 1; if (empty($count)){ $count = 10; $start = ($p-1)*$count; for ($i=$start;$i $start+$count;$i++){ if (!empty($arr[$i])){ $new_arr[$i] = $arr[$i]; return $new_arr; }
調用:打印出來結果一樣的
$new_arr = $this- arr_page($arr,1,10); dump($new_arr);
調用的時候也可以傳其他參數,不一定每頁十條,
$new_arr = $this- arr_page($arr,1,5);$new_arr = $this- arr_page($arr,2,5);
至于有多少頁,就用count($arr)除以你每頁的條數,如果有小數,加1,這樣就可以分頁了
以上就是php如何將二維數組分頁(附代碼)的詳細內容,PHP教程
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答