usort — 使用用户自定义的比较函数对数组中的值进行排序

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;
});

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

时间: 2024-12-12 12:42:12

usort — 使用用户自定义的比较函数对数组中的值进行排序的相关文章

PHP usort 使用用户自定义的比较函数对数组中的值进行排序

From: http://www.php100.com/cover/php/2395.html usort (PHP 4, PHP 5) usort — 使用用户自定义的比较函数对数组中的值进行排序 说明 bool usort ( array &$array , callback $cmp_function ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. 比较函数必须在第一个参数被认为小于,等于或大于第二个参数时分

PHP 使用用户自定义的比较函数对数组中的值进行排序

原文:PHP 使用用户自定义的比较函数对数组中的值进行排序 usort (PHP 4, PHP 5) usort —      使用用户自定义的比较函数对数组中的值进行排序 说明 bool usort        ( array &$array       , callable $cmp_function       ) 本函数将用用户自定义的比较函数对一个数组中的值进行排序.如果要排序的数组需要用一种不寻常的标准进行排序,那么应该使用此函数. Note: 如果两个成员比较结果相同,则它们在排

qsort 函数的使用——对普通数组、指针数组、二维数组中的元素进行排序

在ANSI C中,qsort函数的原型是 #include <stdlib.h> void qsort(void *base, size_t nmemb, size_t size, int (*compar) (const void *, const void *)); 解释:qsort函数对含有nmemb个元素的数组进行排序,而base指针指向数组的第一个元素.这个数组的元素个数由size指定. compar函数对qsort的比较操作进行定义,所以可以定制数字的比较,字符串的比较,甚至结构体

javascript sort()对数组中的元素进行排序

javascript sort()可以对数组中的元素进行排序, 语法格式:arrayObject.sort(sortby) arrayObject是数组对象,sortby为可选项,用来确定元素顺序的函数的名称,如果这个参数被省略,那么元素将按照ASCII字符顺序进行升序排列. 在没有使用比较函数进行排序时,sort方法是按字符的ASCII值进行排序的,先从第一个字符比较,如果第一个字符相等,再比较第二个字符,以此类推. 对于数值型数据,如果按照字符比较,得到的结果可能并不是我们想要的,因此需要借

算法题:找出一个数组中相加值最大的连续序列元素

package arithmetic; /** * @author SHI * 求一个数组中相加值最大的连续序列元素 */ public class MaxSequence { public static void main(String[] args) { int[] a=new int[]{-2,9,-3,4,-6,7,-6,4}; findBigSequence(a); } /** * 思想: (1)计算出该数组的所有元素和,假设该值为最大 * (2)从数组下标1到a.length-1依次

php 计算多维数组中所有值的总和

php 内置函数 array_sum() 函数返回数组中所有值的总和,只能返回一维数组的总和: 计算多维数组所有值的和就要自定义函数了: 1 function get_sum($array) { 2 $num = 0; 3 foreach($array as $k => $v) { 4 if(is_array($v)) { 5 $num += get_sum($v); 6 } 7 } 8 return $num + array_sum($array); 9 }10 get_sum($array)

PHP中根据二维数组中某个字段实现排序

想要实现二维数组中根据某个字段排序,一般可以通过数组循环对比的方式实现.这里介绍一种更简单的方法,直接通过PHP函数实现.array_multisort() :可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序.详细介绍可参考PHP手册:https://www.php.net/manual/zh/function.array-multisort.php 实例: 1.单个字段排序: $data = [ ['id' => 1, 'name' => '张三', 'sort' =&

对数组中数据的大小排序

现有一组数据,需要对其进行从小到大的进行排序 1:冒泡法排序,时间复杂度O(n2) public class popSort{    public static void main(String[] args) { int[] arr={1,161,151,2,5,6,7,46,4,22,545,232,11,58};        int len = arr.length;        for(int i=0;i<len-1;i++){ for(int j=0; j<len-i-1;j++

PHP获取数组中重复值的键值

$array = array ( 0=>'a', 1=>'b', 2=>'a', 5=>'b', 6=>'c', 40=>'d' ); $keyarr =[];$resultkey = [];foreach ($array as $k => $v) { if (in_array($v, $keyarr)) { //在数组中搜索键值$v,并返回它的键名 $resultkey[] = array_search($v,$keyarr); $resultkey[] = $