afei-happy

记录一下PHP数组数据分页的方法

我们的数据未必都是存储在数据库中,很多时候是用数组来组织的。所以获取数组数据,进行分页是比较常见的编程要求。分页的原理很简单,就是按分页数获取某个范围的数据而已,PHP给我们提供了一个很便利的函数:array_slice()。array_slice() 函数在数组中根据条件取出一段值,并返回。

下面举两个分页例子,都很简单。
01    public function books($pagenum = 1)
02    {
03        include_once("page.php");
04        include("arr_books.php");
05         
06        foreach ($data[\'books\'] as $key=>$value){
07            $name[$key] = $value[\'name\'];
08            $rank[$key] = $value[\'rank\'];
09        }
10         
11        array_multisort($rank,SORT_NUMERIC,SORT_DESC,$data[\'books\']);   // 倒序
12        //array_multisort($rank,SORT_NUMERIC,SORT_ASC,$data[\'books\']);  // 顺序
13         
14        $perpage = 10;
15        $count = count($data[\'books\']);
16        $pages = new PageClass($count, $perpage, $pagenum, base_url().\'veda/books/{page}/\');
17        $start = ($pagenum - 1) * $perpage;
18        $data[\'bks\'] = array_slice($data[\'books\'], $start, $perpage);
19     
20        $data[\'nav\'] = $pages -> myde_write($pagenum);
21         
22        $this->load->view(\'header\', $data);
23        $this->load->view(\'books\', $data);
24        $this->load->view(\'footer\', $data);
25    }

再来一个:
1    $perpage = 2;
2    $page = intval(getgpc(\'page\')) ? intval($_G[\'gp_page\']) : 1;
3    $start = ($page - 1) * $perpage;
4    $count = count($group_list);
5    $list = array_slice($group_list, $start, $perpage);
6    $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 - 默认 - 重置键

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

例子 2(带有负的 offset 参数):
1    <?php
2    $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
3    print_r(array_slice($a,-2,1));
4    // Array ( [0] => Horse )
5    ?>

例子 3(preserve 参数设置为 true):
1    <?php
2    $a=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
3    print_r(array_slice($a,1,2,true));
4    // Array ( [1] => Cat [2] => Horse )
5    ?>

例子 4(带有字符串键):
view source
print?
1    <?php
2    $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse","d"=>"Bird");
3    print_r(array_slice($a,1,2));
4    // Array ( [b] => Cat [c] => Horse )
5    ?>

 

posted on 2013-10-18 15:53  以为是帅哥  阅读(288)  评论(0编辑  收藏  举报
 

分类:

技术点:

相关文章:

  • 2022-02-06
  • 2021-12-22
  • 2021-10-02
  • 2022-12-23
  • 2021-10-21
  • 2021-12-09
  • 2022-12-23
猜你喜欢
  • 2021-11-04
  • 2022-01-18
  • 2021-11-28
  • 2021-10-17
  • 2022-01-05
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案