test

工作中碰到一个问题,把三个日志表里的数据取出,进行排序。


第一步很简单,直接用mysql进行排序。


那么问题来了,当把三个表的数据取出来之后,合并数组在一起之后。时间会是无序的。因为mysql只是对三张表进行了排序。


解决办法


用PHP的usort这个函数,可以自定义排序
下面上代码

usort($order, function ($a, $b) {
    if ($a['pay_time'] == $b['pay_time']) {
        return 0;
    }
    return ($a['pay_time'] < $b['pay_time']) ? 1 : -1;
});

第一个参数是要排序的数组,第二个参数是回调函数。在回调函数里面,可以对时间进行比较,这个时间你根据自己的需要进行正序或者是倒序的排序了。