【发布时间】:2015-06-05 10:48:46
【问题描述】:
我有一个数组:
Array
(
[product1] => Array
(
[id] => 1
[title] => 'p1'
[extra] => Array(
[date] => '1990-02-04 16:40:26'
)
)
[product2] => Array
(
[id] => 2
[title] => 'p2'
[extra] => Array(
[date] => '1980-01-04 16:40:26'
)
)
[product3] => Array
(
[id] => 3
[title] => 'p3'
[extra] => Array(
[date] => '2000-01-04 16:40:26'
)
)
[product4] => Array
(
[id] => 4
[title] => 'p4'
[extra] => Array(
[date] => '1995-01-04 16:40:26'
)
)
[product5] => Array
(
[id] => 5
[title] => 'p5'
[extra] => Array(
[date] => '1960-01-04 16:40:26'
)
)
...
我需要获取 2 个最新日期的产品并将它们移动到数组的开头。
我研究了 multisort 函数,我可以像这样对数组进行排序,但是整个数组将按日期排列,我想保持数组的顺序但只是增加最新的 2 行。
我需要从数组中挑选出 2 个最新的(按日期排序),然后将它们移动到数组的开头。所以id的顺序应该是:
3,4,1,2,5
最新的2个已经移到了数组的前面,其余的还是按照id排序的。
【问题讨论】:
-
你能发布预期的输出吗
-
您能否提供更多关于您想要实现的目标的信息?
-
我已经用我想要实现的目标编辑了这个问题
-
给定的数组是不可能的(重复键),一个真正的数组样本会有所帮助。
-
替代方案:通过数组查找最新项的键(
foreach或array_reduce),然后将array_splice和array_merge一起返回。