php將乙個二維陣列分頁

2021-08-31 18:33:55 字數 1922 閱讀 3109

將乙個二維陣列分頁,假設每頁顯示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))

//開始取值的下標,陣列下標是從0開始的,例如第一頁從下標為0開始取,第二頁從下標為10開始取

$start = ($p-1)*10;

//根據開始的下標,和需要取的資料的條數(每頁顯示的條數)迴圈賦值給新陣列

for ($i=$start;$i

}dump($new_arr);

列印出來結果:

封裝一下:

}呼叫:列印出來結果一樣的

呼叫的時候也可以傳其他引數,不一定每頁十條,

$new_arr = $this->arr_page($arr,1,5);

$new_arr = $this->arr_page($arr,2,5);

至於有多少頁,就用count($arr)除以你每頁的條數,如果有小數,加1,這樣就可以分頁

將乙個二維陣列合併成乙個一維陣列

大家都知道php有內建的陣列合併函式array merage arr,arr1,arr2,arr3 那如何把乙個二維陣列如array array a 1,b 2 array c 3,d 4 合併成如下的陣列 第一種 方法當然是遞迴法呢,如下 newarray array function chang...

PHP 二維陣列 排序 分頁

普通的二維陣列按元素值大小排序 某乙個二維陣列根據coins值的大小進行排序 sort desc 是倒敘 sort asc正序 預設 res array column win coins array multisort res sort desc win 如果我們在查詢資料的時候分頁不好直接limi...

php 把乙個陣列分成有n個元素的二維陣列的演算法

一 第一種解法 把乙個陣列分成幾個陣列 arr 是陣列 num 是陣列的個數 function partition arr,num return newarray arr array 1,3,4,5,6,7,8,9,2 print r partition arr,3 二 另外一種解法是模擬現實生活中...