【发布时间】:2016-03-20 01:29:24
【问题描述】:
我有我的 SQL 表:
+----+-----+-------+-------+
| id | reg | in | out |
+----+-----+-------+-------+
| 1 | a | 11:10 | |
| 2 | a | | 11:30 |
| 3 | b | 06:10 | |
| 4 | c | | 07:10 |
+----+-----+-------+-------+
我将它排序到一个数组中,这样如果 reg 相同并且 in 在 out 之前它就会匹配,例如:
array(
[0]=> array('reg'=>'a','in'=>'11:10','out'=>'11:30'),
[1]=> array('reg'=>'b','in'=>'06:10','out'=>''),
[2]=> array('reg'=>'c','in'=>'','out'=>'07:10')
)
然后我需要使用这个数组,以便它按时间顺序排列,但是在同时存在输入和输出时间的情况下,只使用输出时间。因此,如果这是排序的,它将是:
array(
[0]=> array('reg'=>'b','in'=>'06:10','out'=>''),
[1]=> array('reg'=>'c','in'=>'','out'=>'07:10'),
[2]=> array('reg'=>'a','in'=>'11:10','out'=>'11:30')
)
我希望这是有道理的,我每天大约有 200 个条目,我整个周末都在尝试订购它,但似乎总是有一个迷路。
时间将是一个 unix 时间戳,我刚刚将它放在 H:i 中,因为 SQL 将排序 WHERE > 午夜和
可能有一些非常简单明了的东西在盯着我看,但我看不到。
【问题讨论】:
-
usort() 带有一个基于 max(in, out) 比较的回调?
-
虽然如果数据来自数据库,使用 ORDER BY 子句处理排序
-
谢谢@MarkBaker usort() 实际上可能对我有用。我已经将 Order by 用于原始结果集,有时它们可能会出现乱序,因此我需要一种方法将它们重新排序。再次感谢
标签: php mysql arrays sorting date-sorting