网站首页php

PHP二维数组按值排序及按分页取数据

发布时间:2018-08-11 19:36:07编辑:slayer.hover阅读(649)

    项目中遇到无法直接用SQL排序分页取到的数据, 可以先存入PHP数组中,再进行处理。

    如下所示:

    <?php
    #通过加工,得到以下的统计数据表。
    $rows = [
        0=>[
            'title'    =>    '机构一',
            'tongji1'    =>    100,
            'tongji2'    =>    200,
            'tongji3'    =>    300,
            'tongji4'    =>    400,
        ],
        1=>[
            'title'    =>    '机构二',
            'tongji1'    =>    400,
            'tongji2'    =>    300,
            'tongji3'    =>    200,
            'tongji4'    =>    100,
        ],
    ];
    ?>


    一、处理排序,可分别按tongji1|tongji2|tongji3|tongji4排序

    $sort = 'tongji1';
    $order =  'desc';
    $order = ($order=='desc') ?  SORT_DESC : SORT_ASC;
    array_multisort(array_column($rows, $sort), $order, $rows);


    二、取分页数据

    $page   =  1;
    $limit  =  10;
    $offset    =  ($page-1) * $limit;
    $data = array_slice($rows, $offset, $limit);


    最终的$data就是取到的已排序的当前页数据, 此方法适用于结果数据量不是很大的统计并排序场景。


评论