实现思路:
1、利用位运算,将需要排序的数值保存到对应的二进制分段上;
比如:高位保存积分,低位保存时间戳等;
2、需要注意数值的大小,不能超出二进制64位的表示范围;
比如:时间戳可以通过未来多少年的时间减去当前的时间戳,把计算的差值保存到二进制中;
代码实现逻辑:
// 模拟来自数据表的数据
$list = [
['uid'=>1001,'score'=>80,'time'=>1617365056],
['uid'=>1002,'score'=>90,'time'=>1617365865],
['uid'=>1003,'score'=>100,'time'=>1617367036],
['uid'=>