[PHP]一个数组,按照 2 个逻辑进行排序

2015-07-28 21:54:45 +08:00
 konakona
数组大概结构,数量不限,用递归解决;

$arr = array
0 =>
array (size=15)
'id' => int 3
'title' => string '搜狐自媒体线下活动趴' (length=30)
'status' => int 3
'created_at' => string '2015-07-12 21:26:17' (length=19)
1 =>
array (size=15)
'id' => int 3
'title' => string '搜狐自媒体线下活动趴' (length=30)
'status' => int 2
'created_at' => string '2015-07-10 21:26:17' (length=19)

大概如此,排序2个关键:

A. 优先按照status 按照[3,1,4,2]的数值顺序排序
B. 次要排序条件是created_at DESC


关键问题:
1. 当有多个数据都是status为3时,由于3是排在最前的,他们的次要排序条件是created_at
2. 当多个数据都是status为4时,这类由于应该在中后,同时同样都是status为4的数据也按照created_at 进行DESC

=V= 我始终还是将代码抱持在了约50行,感觉还有优化的空间。(用了array_multisort)

大家一般是如何递归实现的呢?



----

更新,已10行搞定-.- 也没用array_*了。求更有趣的方案。
1135 次点击
所在节点    问与答
0 条回复

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/209036

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX